中的错误/~/react网络图/lib/map.css



我想使用react网络图库。我安装了node v0.10.25,npm版本1.3.10,并且能够使用node运行.js文件。我遵循了安装webpack和babel的教程,这两个教程似乎都在使用教程示例。我已经使用npm安装了react网络图组件。这最初抱怨我的兄弟姐妹依赖我们错了。当我重新加载react和react dom并给出特定版本(npm install--save react@^0.14.3 react dom@^0.143)时,这一问题得到了修复

因此,一切似乎都按照教程进行。

以下是index.jsx文件内容:

console.log( "hw" )
import React from 'react';
import {render} from 'react-dom';
import { TrafficMap } from "react-network-diagrams";
class App extends React.Component {
  render () {
    return <TrafficMap width={980} height={500} margin={50}
            topology={topo}
            traffic={traffic}
            edgeColorMap={edgeColorMap}
            edgeDrawingMethod="bidirectionalArrow"
            edgeThinknessMap={edgeThinknessMap}
            edgeShapeMap={edgeShapeMap}
            nodeSizeMap={nodeSizeMap}
            nodeShapeMap={nodeShapeMap}
            stylesMap={stylesMap}
            selection={mapSelection}
            onSelectionChange={this.handleSelectionChanged} />
    //return <p> Hello React!</p>;
  }
}
render(<App/>, document.getElementById('app'));

这是webpack 的输出

ubuntu@ip-172-31-38-114:~/doe2$ ./node_modules/.bin/webpack -d
Hash: 1ecd317731574aa4e7fd
Version: webpack 1.13.0
Time: 5901ms
        Asset     Size  Chunks             Chunk Names
    bundle.js  1.38 MB       0  [emitted]  main
bundle.js.map  1.55 MB       0  [emitted]  main
    + 204 hidden modules
ERROR in ./~/react-network-diagrams/lib/map.css
Module parse failed: /home/ubuntu/doe2/node_modules/react-network-diagrams/lib/map.css Unexpected token (1:4)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (1:4)
    at Parser.pp.raise (/home/ubuntu/doe2/node_modules/webpack/node_modules/acorn/dist/acorn.js:920:13)
    at Parser.pp.unexpected (/home/ubuntu/doe2/node_modules/webpack/node_modules/acorn/dist/acorn.js:1483:8)
    at Parser.pp.semicolon (/home/ubuntu/doe2/node_modules/webpack/node_modules/acorn/dist/acorn.js:1462:73)
    at Parser.pp.parseExpressionStatement (/home/ubuntu/doe2/node_modules/webpack/node_modules/acorn/dist/acorn.js:1976:8)
    at Parser.pp.parseStatement (/home/ubuntu/doe2/node_modules/webpack/node_modules/acorn/dist/acorn.js:1754:188)
    at Parser.pp.parseTopLevel (/home/ubuntu/doe2/node_modules/webpack/node_modules/acorn/dist/acorn.js:1648:21)
    at Parser.parse (/home/ubuntu/doe2/node_modules/webpack/node_modules/acorn/dist/acorn.js:1616:17)
    at Object.parse (/home/ubuntu/doe2/node_modules/webpack/node_modules/acorn/dist/acorn.js:882:44)
    at Parser.parse (/home/ubuntu/doe2/node_modules/webpack/lib/Parser.js:902:15)
    at DependenciesBlock.<anonymous> (/home/ubuntu/doe2/node_modules/webpack/lib/NormalModule.js:104:16)
    at DependenciesBlock.onModuleBuild (/home/ubuntu/doe2/node_modules/webpack/node_modules/webpack-core/lib/NormalModuleMixin.js:310:10)
    at nextLoader (/home/ubuntu/doe2/node_modules/webpack/node_modules/webpack-core/lib/NormalModuleMixin.js:275:25)
    at /home/ubuntu/doe2/node_modules/webpack/node_modules/webpack-core/lib/NormalModuleMixin.js:259:5
    at Storage.finished (/home/ubuntu/doe2/node_modules/webpack/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:38:16)
    at /home/ubuntu/doe2/node_modules/webpack/node_modules/enhanced-resolve/node_modules/graceful-fs/graceful-fs.js:78:16
    at fs.js:268:14
    at /home/ubuntu/doe2/node_modules/webpack/node_modules/enhanced-resolve/node_modules/graceful-fs/graceful-fs.js:43:10
    at Object.oncomplete (fs.js:107:15)
 @ ./~/react-network-diagrams/lib/map-base.js 55:0-20

react网络图网站中提供的信息(http://software.es.net/react-network-diagrams/#/?_k=xs005u)我不清楚。在"示例"标题下,它说我必须运行npm安装。我已经在几个不同的目录中完成了这项工作,但这并没有帮助,我在黑暗中工作。npm运行的网站是包中的一个脚本,它似乎做了一些事情,但它说要与一个网络客户端连接到8080端口,但那里没有任何内容。

我只是觉得我错过了一两个关键的部分来把整个事情整合在一起。

谢谢你的帮助。

伊恩。

看起来您缺少了webpack的css加载程序配置。

1) 首先安装css加载程序(导入css)和样式加载程序(将css添加到DOM)

npm install css-loader style-loader --save-dev

2) 将加载程序配置添加到您的webpack配置

{
  // ...
  module: {
    loaders: [
        { test: /.css$/, loader: "style!css" }
    ]
  }
}

您可以在这里找到更多信息Webpack:嵌入式STYLESHEETS

Promises是ES2015(以前的ES6)的一部分。它们还没有集成到所有环境中,包括您的环境。有一个非常著名的库添加了对新ecmascript特性的支持,它被称为Babel.js.

就像我们添加了一个css加载程序一样,我们将添加一个babel加载程序:

npm install babel-loader babel-core babel-preset-es2015 --save-dev

现在添加到您的加载器:

{
  // ...
  module: {
    loaders: [
        { test: /.css$/, loader: "style!css" },
        {
          test: /.jsx?$/,
          exclude: /(node_modules|bower_components)/,
          loader: 'babel', // 'babel-loader' is also a legal name to reference
          query: {
            presets: ['es2015']
          }
        }
    ]
  }
}

有关更多信息:babel loader

最新更新