問題タブ [webpack-2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
webpack - 転送に必要な特定のモジュールを構築するように構成する
サーバー側の node.js アプリケーションを開発しており、次の構成で webpack 2 を使用してバンドルを作成しています。
私の依存関係の 1 つは node-argon2 ライブラリで、このライブラリを にインポートしserver.js
ます。webpack によって生成された結果のバンドル ファイルには、次のように、argon2 コードが含まれています。
この場合、次のエラーが表示されます。
私は上記のエラーをserver.js
、arg2 モジュールのみをインポートする最小限のもので再現します。これは、Argon2 ライブラリがネイティブ コードを呼び出すという事実に関係している可能性があると考えて、モジュールを外部としてマークし、webpack ビルド ファイル内のエントリを次のように置き換えました。
これでエラーなしで動作するようになりました。この外部を明確にマークすることは正しくありません (上記の変更なしではまったく機能しません)。上記のようなエントリになるように、arg2 モジュールを構成しようとしています。string_decoder
これは、 、tty
、zlip
および他のいくつかのモジュールがバンドルで定義されている方法と一致することに気付きました。
javascript - Webpack 2 構成エラー
私が何を間違っているのかわからないので、この構成についての洞察をいただければ幸いです。次のエラーが表示されます。
エラー: 新しい WebpackOptionsValidationError(webpackOptionsValidationErrors) をスローします
私の WEBPACK 構成ファイル:
明らかに、エラーで通知されたように、マージ関数に何か問題がありますが、返されたオブジェクトは問題ないようです。config obj (メインの webpack.config obj) の出力は次のとおりです。
構成出力オブジェクト:
webpack - モジュールは webpack の CommonChunk プラグインで複数回評価されます
複数のエントリと 1 つの共通チャンクを含む webpack ビルドがあります。ロードするときもあれば、ロードするときもあり、エントリ 2 と 3 をロードentry1
するときentry1
もentry2
あります。いずれにしても、常に共通チャンクを含めます。
すべて問題ないようです。バンドルされたファイルは問題ありません。しかし、実行時に問題があるようです。2 つのエントリが必要で、両方がモジュール (共通ファイル内) に依存している場合。このモジュールは 2 回評価されます。
簡単な例:
entry1.js
entry2.js
deps.js
ここでは、アラートが 2 回呼び出されていることがわかります。私は、webpackがrequireと同様のことをnode.js
行い、キャッシュすることを期待していました。
再確認したところ、ファイルの内容deps.js
が実際にcommon.js
ファイルにあり、ブレークポイントを配置するalert
ことで、同じコードが複数回呼び出されていることがわかりました。これは予想外です。
これを解決する方法はありますか?
angular - Angular2 (2.2.0) および Webpack 2 (2.1.0-beta.21) で build:prod を実行するとコンパイルの問題が発生する
Angular2 (2.0.1) & Webpack 2 (2.1.0-beta.21) 問題はありません。nom run build:prod を実行できます...
Angular2 を最新バージョン (2.0.1) にアップグレードすると、
npm run build // => エラーなし
しかし、
npm run build:prod // => エラーが発生する
私のpackage.jsonの唯一の変更は次のとおりです。
}
web pack.config.common.js
web pack.config.prod.js
tsconfig.aot.json
}
node.js - Webpack バンドル ENOENT: そのようなファイルまたはディレクトリはありません fs.readdirSync
AWS Lambda で動作するマイクロアプリを作成したいと考えています。これについては、webpack 2 を調査しています。fs.readdirSync
ただし、ファイル/モジュール名のリストを取得してモジュール リストを生成するために使用するレガシー コードがあります。バンドルを実行するとエラーが発生しますError: ENOENT: no such file or directory, scandir '/innerLib'
。これは、webpack がファイル内で実行することを認識せずfs.readdirSync(path.resolve(__dirname, 'innerLib'));
、lib/lib.js
バンドル時にファイル名の配列を解決するためです。
レガシ コードに大きな変更を加えることなく、wepback でどのようなアプローチを取ることができますか。以下とgithubに簡単な例を含めました
webpack.config.js
index.js
lib/lib.js
lib/innerLib/a.js
lib/innerLib/b.js