0

どういうわけか、次のコマンドを実行すると、jsxhint が webpack によってコンパイルされたファイルを分析しているようです

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

これらの警告が表示されます

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

アプリケーション内のファイルの約 30% に対して。

に行くと、クロムdevtoolsで利用可能な(処理された)ファイルに対応する行番号と文字番号を参照しますSources Tab > webpack:// > . > relative-path-to-file。これらのファイルがディスク上のどこにあるかを見つけて、プリローダーの除外リストに追加しようとしましたが、webpack-dev-server ドキュメントによると、これらのファイルはメモリから提供されます。

アプリケーションとすべてのノード モジュールを完全に削除し、リポジトリから再度チェックアウトしようとしましたが、問題は解決しませんでした。

node_modulesこの問題は、フォルダーを削除した後、package.json ファイル内のノード モジュールを更新した後に発生しました。すべてのノード モジュールを以前のバージョンにロールバックしようとしましたが、問題は解決しません。

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。モジュールの 2 つのバージョン (react-tools@0.12.2およびjsxhint-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 に答える