1

Windows でモジュール名を解決する Webpack に問題があります。ローダーはインストールされていますが、Webpack がそれらを解決しようとして使用しているパスが正しくありません (下の作業ディレクトリへのモジュール パスが連結されていることに注意してください)。Webpack は webpack-dev-server で起動されています。

ERROR in ./~/css-loader?sourceMap&modules&localIdentName=[name]_[local]_[hash:base64:3]!./~/postcss-loader?parser=postcss-scss!./client/src/scripts/components/Main/Main.css
Module build failed: (SystemJS) ENOENT: no such file or directory, open 'C:\Users\Terry\Projects\django-react\C:\Users\Terry\Projects\django-react\node_modules\css-loader\index.js'
        Error: ENOENT: no such file or directory, open 'C:\Users\Terry\Projects\django-react\C:\Users\Terry\Projects\django-react\node_modules\css-loader\index.js'
            at Error (native)
        Error loading C:/Users/Terry/Projects/django-react/C:\Users\Terry\Projects\django-react\node_modules\css-loader\index.js
 @ ./client/src/scripts/components/Main/Main.css 4:14-225 13:2-17:4 14:20-231
 @ ./client/src/scripts/components/Main/Main.jsx
 @ ./client/src/index.js
 @ multi main
webpack: bundle is now VALID.

関連情報:

  • ウィンドウズ10
  • ノード 6.6.0
  • NPMスクリプトを介してbabel-nodeでwebpackを実行しています
  • Webpack 2.1.0-beta.22
  • NPM 3.10.3

編集: これは通常、ホット リロードをトリガーする編集を行った場合にのみ発生します。初めて webpack-dev-server を起動したときに発生することがありますが、ソースを編集するたびに発生します。

4

1 に答える 1

2

これを理解したことがあるかどうかはわかりませんが、Windows 10 で webpack を使用しているときに、不正な形式の node_modules パスでまったく同じエラーが発生していました。他の場所で文書化する必要があります。

私自身のデバッグで、このエラーは webpack ローダー モジュールでのみ発生することがわかったので、webpack を掘り下げてエラーの原因を突き止めました。掘り下げた結果、これは webpack で使用される loader-runner パッケージが原因であることが判明しました。System.import を使用してローダー モジュールを解決しようとします。System.import が使用できない場合は、require にフォールバックします。私の場合、不正な形式の node_modules パスが、systemjs を介して System.import によって生成されていました。System.import の systemjs 実装には、Windows で絶対パスが使用されている場合にバグがあり、webpack がローダーに絶対パスを渡すため、エラーがスローされるようです。

loader-runner のローカル コピーを編集し、System.import をコメント アウトして、代わりに require を使用するようにすることで、この問題を回避することができました。もちろん、これは決して良い長期的な解決策ではないので、私はまだより良いものを探しています. これが npm の依存関係の問題であるかどうかを確認するために、yarn に切り替えてみましたが、Windows でこれらのエラーが引き続き発生する場合は、この回避策で起動して実行できるはずです。

于 2016-12-19T08:47:03.950 に答える