Webpack手触り学習シリーズのwebpack 5の認識と変化
一、webpack 5の紹介とダウンロード
二、webpack 5の変化 Nodeを自動的に削除します.js Polyfills の初期、 は、 は移行し、できるだけフロントエンドと互換性のあるモジュールを使用しようとし、 ChunkおよびモジュールID は、長期キャッシュのための新しいアルゴリズムを追加し、本番モードではデフォルトでこれらの機能を有効にします. です. Chunk ID 開発環境で が必要です. ではない. Tree Shaking . . を処理することができる. Output しか出力できません. を生成することができる属性 SplitChunk Caching キャッシュは 監視出力ファイル より前の のみが更新.今回の更新は、初回構築時に出力ファイルが変化するかどうかを確認し、全ファイル を出力かどうかを決定する.デフォルト より多くの内容、 を見ることができます
webpack 5
は、永続的なキャッシュによって構築性能を向上させる.webpack 5
より良いアルゴリズムとデフォルト値を使用して、長期キャッシュを改善します.webpack 5
は、より良い木揺れとコード生成によってバンドルパケットサイズを改善する.webpack 5
は、奇妙な状態にある内部構造を除去するとともに、v4
において重大な変更を導入することなく機能を実現する.webpack 5
は、重大な変更を導入することによって、将来の機能を準備し、v5
をできるだけ長く使用することができます.webpack 5
のダウンロードはnpm i webpack@next webpack-cli -D
コマンドでダウンロードできます.二、webpack 5の変化
webpack
の目標はブラウザで多くのnode.js
モジュールを実行することを許可することだったが、モジュール構造が変化し、多くのモジュールの用途は現在、主にフロントエンドの目的のために作成されている.webpack <= 4
には多くのnode.js
コアモジュールのpolyfill
が付属しており、モジュールが任意のコアモジュール(すなわちcrypto
モジュール)を使用すると、これらのモジュールは自動的に適用される.node.js
として記述されたモジュールの使用を容易にするが、これらの巨大なpolyfill
をパケットに追加する.多くの場合、これらのpolyfill
は不要である.webpack 5
は、これらのコアモジュールの充填を自動的に停止し、フロントエンドと互換性のあるモジュールに集中します.node.js
コアモジュールにpolyfill
とエラーメッセージを手動で追加すると、ターゲットの実現方法を示すことができます.chunkIds: "deterministic", moduleIds: "deterministic"
import(/* webpackChunkName: "name" */ "module")
の名前を付ける必要はありません.生産環境にはchunk
内部にはwebpack
命名規則があり、chunk
命名id(0, 1, 2)
は現在、ネストモジュールに対するwebpack
を処理することができ、生産環境では、tree shaking
モジュールが露出するinner
が削除され、コードは以下の通りである:// inner.js
export const a = 1;
export const b = 2;
// module.js
import * as inner from './inner';
export {
inner };
// user.js
import * as module from './module';
console.log(module.inner.a);
b
は現在、複数のモジュールの前の関係が可能であり、webpack
が設置されている場合、"sideEffects": false
メソッドが使用されていないことが発見されると、test
だけでなく、test
も削除され、コードは以下の通りである:import {
something } from './something';
function usingSomething() {
return something;
}
export function test() {
return usingSomething();
}
"./something"
は、現在、webpack
に対するCommonjs
tree shaking
デフォルトではwebpack 4
コードES5
は、webpack 5
およびoutput.ecmaVersion
コード、例えばES5
ES6 / ES2015
の追加を開始する.output.ecmaVersion: 2015
、コードは以下の通り:minSize: 30000;
webpack4
、コードは以下の通り:minSize: {
javascript: 30000,
style: 50000,
}
webpack5
に格納され、コードは以下の通りである://
cache: {
//
type: "filesystem",
buildDependencies: {
// ,
config: [__filename]
}
}
node_modules/.cache/webpack
は、常に1回目の構築時に全てのファイルを出力していたが、再構築監視時には修正したファイルwebpack
entry: "./src/index.js
output.path: path.resolve(__dirname, "dist")
output.filename: "[name].js"