これは私の製品のWebpack設定です 。タイトルの2つの引用符は、それぞれwebpack2とwebpackを指します。どちらも同様のエラーでハングアップします。
これはビルドをトリガーする私のコマンドです
set NODE_ENV=production && webpack --config config/webpack.config.prod.js --progress --display-error-details
何が欠けていますか?
npm run pack
を実行した後の出力は、本番環境のWebpackビルドに関連しています。
$ npm run pack
> somedir@ pack C:\somedir
> set NODE_ENV=production && webpack --config config/webpack.config.prod.js --progress --display-error-details
95% emitting
だから私はこれを理解しました。出力パスに 予約済み文字 を含めていたことがわかりました。私はそれ以来 githubで問題を公開しました です。
Output.pathで無効な文字または予約された文字を使用すると、webpackが出力されずにハングします。 --progressフラグを指定して実行すると、95%の出力(Webpackのバージョンに応じたサフィックス)が掛かっていることを示します。
私の場合(Windows環境とlaravel-mix)、完全に単純な構成でも機能しないため、パスに不正な文字はありませんでした。それは単にwebpack([email protected])が彼自身の愚かなことをしていて、問題は次のようにpublicPath
オプションを使用して解決されました:
mix.options({
publicPath: ('./')
});
documentation によると:
アプリケーション内のすべてのアセットの基本パスを指定できます
または、次のように使用できます。
mix.setPublicPath('./');
私はstandaloneとしてlaravel-mixを使用します。これは私の私の設定です:
let mix = require('laravel-mix');
mix.setPublicPath('./')
.js('resources/js/app.js', 'js')
.sass('resources/sass/app.scss', 'css');
これでうまくいきました。
[email protected]
にアップグレードして修正しましたnpm rebuild node-sass
私によって解決されました。
このエラーは、無効なインポートがある場合にも発生します。コンパイルされていない他のファイルから参照してインポートします。
私の場合、私はAngular 4、Webpack 3、AOTおよび遅延読み込みを使用しようとしました。@ngtools/webpack
および AotPlugin を使用すると、95%でフリーズしました。
修正されたのは:
1)。 node-sass
はnpm install node-sass --no-bin-links
とともに自動的にインストールされなかったため、sass-loader
とともにインストールします。
2)。 SCSS/CSSファイル用のこれらのローダーを追加します(ノードモジュール内でも):
{
test: /\.css$/,
use: [
'style-loader',
'css-loader'
]
},
{
test: /\.scss$/,
use: [
'raw-loader',
'sass-loader'
]
}
ランニング ng build
およびnode --inspect node_modules/webpack/bin/webpack.js
は問題のあるパスの出力を提供するはずです