Open justcallmehide opened 5 years ago
スピードに関する地道な努力を来年にむけてぼちぼち初めていきます。 スピードに銀の弾丸はありませんとのこと。
こういうイメージを作ってくれると一瞬で理解できる。 日本語の作者は説明がうまい人が多い。(英語の理解力が乏しいだけかもだが...😭) https://qiita.com/soarflat/items/1b5aa7163c087a91877d
単純に共通項をまとめるって話なのだが、 文字でだらだら説明されるとわからなかったり。
webpack.config.js これを追加
optimization: { splitChunks: { name: 'vendor', chunks: 'initial', } }
nameの'vendor'が共通ファイルの出力ファイル名にあたるので、 自分はcommonにした。
ちなみに複数ファイルの出力はこのように書く outputのfilenameを[name]と書くと、entryの各キーがファイル名として吐き出される。 今回のケースでいえば、home.bunlde.jsとcarouse.bundle.jsが出る。
entry: { home: __dirname + path['mobile'] + 'ts/home.ts', carousel: __dirname + path['mobile'] + 'ts/carousel.ts', }, output: { filename: '[name].bundle.js',
複数のエントリーポイントが1つの共通ファイルを利用するため、全体のファイルサイズが小さくなる 共通ファイルなのでキャッシュを活用できる(1度読み込めば別ページに遷移しても読み込みが不要、共通ではないファイルだけ読み込めば良い)
Webpack自体に疎かったので勉強になります。 現在htmlに直接書かれているJSを外に出したり、webpackでモジュール化しやすいような構成を念頭に入れてから書いていく必要があるのかなと思いました。
webpack自体が依存関係にあるファイルを1つのファイルに出力できるっていって流行ったのに、今やそれをさらに分割して依存関係を保ったまま余計なファイルは読み込まないという次の流れになってますね。
スピードに関する地道な努力を来年にむけてぼちぼち初めていきます。 スピードに銀の弾丸はありませんとのこと。
こういうイメージを作ってくれると一瞬で理解できる。 日本語の作者は説明がうまい人が多い。(英語の理解力が乏しいだけかもだが...😭) https://qiita.com/soarflat/items/1b5aa7163c087a91877d
単純に共通項をまとめるって話なのだが、 文字でだらだら説明されるとわからなかったり。
webpack.config.js これを追加
nameの'vendor'が共通ファイルの出力ファイル名にあたるので、 自分はcommonにした。
ちなみに複数ファイルの出力はこのように書く outputのfilenameを[name]と書くと、entryの各キーがファイル名として吐き出される。 今回のケースでいえば、home.bunlde.jsとcarouse.bundle.jsが出る。
optimization.splitChunksを有効にした出力
メリット
複数のエントリーポイントが1つの共通ファイルを利用するため、全体のファイルサイズが小さくなる 共通ファイルなのでキャッシュを活用できる(1度読み込めば別ページに遷移しても読み込みが不要、共通ではないファイルだけ読み込めば良い)