W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
現(xiàn)在,讓我們升級到 webpack 5:
如果你之前在升級 webpack 4 時不能將任何插件或加載器升級到最新版本,現(xiàn)在不要忘了升級。
optimization.moduleIds
? 和 ?optimization.chunkIds
? 從你的webpack配置中移除。使用默認(rèn)值會更合適,因為它們會在 production 模式
下支持長效緩存且可以在 development
模式下進(jìn)行調(diào)試。[hash]
? 占位符時,請考慮將其改為 ?[contenthash]
? 。效果一致,但事實證明會更有效。pnp-webpack-plugin
? 插件,你可以將其從配置中移除,因為它已經(jīng)被默認(rèn)支持。IgnorePlugin
? ,現(xiàn)在已經(jīng)支持傳入一個 ?options
? 對象: ?new IgnorePlugin({ resourceRegExp: /regExp/ })
? 。node.fs: 'empty'
? ,請使用 ?resolve.fallback.fs: false
? 代替。watch: true
? ,請移去它。無需按編譯器的提示設(shè)置,當(dāng)執(zhí)行 ?watch()
? 時為 ?true
? ,當(dāng)執(zhí)行 ?run()
? 時為 ?false
? 。rules
? ,則使用 ?raw-loader
? ,? url-loader
? 或 ?file-loader
? 來加載資源,請使用 資源模板 替代,因為它們可能會在不久的將來被淘洗。target
? 標(biāo)記設(shè)置為函數(shù),則應(yīng)將其更新為 ?false
? ,然后在插件中選擇使用該函數(shù)。具體示例如下:// for webpack 4
{
target: WebExtensionTarget(nodeConfig)
}
// for webpack 5
{
target: false,
plugins: [
WebExtensionTarget(nodeConfig)
]
}
如果通過 import 使用了 WebAssembly,應(yīng)遵循以下兩點:
experiments.syncWebAssembly: true
? 配置,以啟動廢棄提示,獲得在webpack 4中的一致為。experiments
? 的值改為 ?experiments:{ asyncWebAssembly: true }
? 以使用最新規(guī)范的 WASM。重新考慮 ?optimization.splitChunks
? 的配置:
splitChunks: { chunks: 'all' }
? 配置。name: false
? ,并將 ?name: string | function
? 替換為 ?idHint: string | function
? 。optimization.splitChunks.cacheGroups: { default: false, vendors: false }
? 配置可以關(guān)閉默認(rèn)值。但我們不推薦這樣做,如果你需要在webpack 5中獲得與之相同的效果:請將配置更改為 ?optimization.splitChunks.cacheGroups: { default: false, defaultVendors: false }
? 。考慮遷移的默認(rèn)值:
entry: './src/index.js'
? 時,你可以省略它,此為默認(rèn)值。output.path: path.resolve(__dirname, 'dist')
? 時:你可以省略它,此為默認(rèn)值。output.filename: '[name].js'
? 時:你可以省略它,此為默認(rèn)值。browserslist
? 配置來決定運行時的代碼風(fēng)格。只需要確保:
1. 將目標(biāo)設(shè)置為browserslist,或者轉(zhuǎn)移者移除target配置,webpack會自動將其置為 browserslist
。
2. 在你的 ?browserslist
? 配置中添加? IE 11
? 。
browserslist
? ,webpack 的運行時代碼將默認(rèn)使用 ES2015 語言法(例如,箭頭數(shù))來構(gòu)建一個簡潔的 bundle。如果你構(gòu)建構(gòu)建的目標(biāo)環(huán)境并不支持 ES2015 的語言(如 IE 11),你需要設(shè)置 ?target:['web', 'es5']
? 以使用 ES5 的語言。target: 'node8.6'
? 。Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: