0

不知何故,当我运行以下命令时,jsxhint 似乎正在分析 webpack 编译的文件

 webpack-dev-server --devtool eval --colors --progress --content-base ./build

我收到这些警告

const '$__0' has already been declared. @ line <n> char <m>

应用程序中大约 30% 的文件。

当我转到Sources Tab > webpack:// > . > relative-path-to-file. 我试图找到这些文件在磁盘上的位置,以将它们添加到预加载器的排除列表中,但是根据webpack-dev-server 文档,这些文件是从内存中提供的。

我已经尝试完全删除应用程序和所有节点模块并从存储库中再次检出,但这并没有解决问题。

删除文件夹后更新 package.json 文件中的节点模块后,问题开始出现node_modules。我已经尝试回滚到所有节点模块的先前版本,但问题仍然存在。

webpack.config.js 的内容

...

preLoaders: [
      {
        test: /\.jsx?$/,
        loader: 'jsxhint-loader?harmony',
        exclude: /node_modules/
      }
    ],
loaders: [
  {
    test: /\.jsx?$/,
    loader: "react-hot!babel",
    exclude: /node_modules/
  },

包.json

...

"devDependencies": {
  "autoprefixer-core": "^5.2.0",
  "babel-core": "^5.5.6",
  "babel-jest": "^5.2.0",
  "babel-loader": "^5.1.4",
  "css-loader": "^0.14.5",
  "file-loader": "^0.8.4",
  "html-webpack-plugin": "^1.5.0",
  "jest-cli": "^0.4.11",
  "json-loader": "^0.5.2",
  "jsx-loader": "^0.13.2",
  "jsxhint-loader": "^0.2.0",
  "less": "^2.5.1",
  "less-loader": "^2.2.0",
  "node-libs-browser": "^0.5.2",
  "postcss-loader": "^0.4.4",
  "react-hot-loader": "^1.2.7",
  "react-immutable-proptypes": "^1.0.0",
  "react-tools": "^0.13.3",
  "style-loader": "^0.12.3",
  "url-loader": "^0.5.6",
  "webpack": "^1.9.10",
  "webpack-dev-server": "^1.9.0"
},
4

1 回答 1

0

删除?harmonypreloader 参数似乎已经解决了这个问题。这个参数在内部被发送到reactTools,它在到达之前对源代码执行转换jsx-loader。似乎两个版本的模块不兼容(react-tools@0.12.2jsxhint-loader@0.2.0)以这种方式使用。

这已经改变了语句,例如var {foo} = this.props从转换为$__0 = this.props; var foo = $__0.foo; 转换为var _props = this.props; var foo = _props.foo;。到目前为止,我还没有发现命名冲突,就像在删除harmony参数之前发生的那样。

于 2015-06-11T17:21:23.057 回答