2017-06-28 6 views
1

私はReactアプリケーションを作成しています。私の主な依存関係はReact,react-dom,、Immutableおよびその他の小さなライブラリです。 webpackでアプリケーションをビルドすると、lodashjQueryなどのいくつかの追加モジュールがロードされるという問題があります。ネストされた依存関係でビルドが大きすぎます(WebpackBundleSizeAnalyzerPluginでチェックされています)。 しかし、例えば、react-domrender機能しか使用しない場合、なぜlodashモジュールをさらにロードする必要がありますか? webpackに強制的に強制的にネストされた依存モジュールの必要な部分のみをロードすることはできますか? ありがとうWebpackはネストされた依存関係から不要なモジュールをインポートします

答えて

2

あなたが望む機能が含まれていないwebpack 1を使用していると思われます:ツリーシェイク。

Webpack 2には、ライブコードインポートであるツリーシェイクがあります。これは、アプリケーションで実際に使用しているライブラリのコードと断片をバンドルしていることを意味しています。これは、単純なデッドコードの除去よりもはるかに優れています(最初にバンドルしてから未使用のコードを削除します)。

私は過去にこれを実行して、webpack 2に移行することを検討しました。この素晴らしい機能が得られます。バンドルを30Mbから1Mbにしました。小型化により、それらのアプリケーションの1つにつき800kまで落ちました。

webpack 2を使用したくない場合は、何らかの理由でrollupのような別の方法があります。私は両方を使って成功しています。ロールアップははるかに簡単な設定ですが、ロールアップのウォッチャーよりも資産が効率的(高速)であることを見ても、webpack 2はインクリメンタルビルドとして私のお気に入りです。

Webpack 2 tree shaking

Migrating from webpack 1 to 2

:両方の結果のバンドルには、ロールアップとWebPACKのとほぼ同じサイズ2.

便利なリンクを持っていました

関連する問題