webpack5新參者
動態匯入資料
import 返回值得型別是Promise
// badboy.js
export default function say(){
console.log('say')
}
export default function speak(){
console.log('speak')
}
function run() {
import('./badboy').then(({default: say, speak}) => {
console.log(say(), speak())
})
}
run()
// or
async function run() {
const { default: say, speak } = await import('./badboy')
console.log(say(), speak())
}
run()
preload/prefetch
預載入和預請求一般在移動端使用比較多,但他們還是有些許不同:
- preload chunk 會在父 chunk 載入時,以並行方式開始載入。prefetch chunk 會在父 chunk 載入結束後開始載入。
- preload chunk 具有中等優先順序,並立即下載。prefetch chunk 在瀏覽器閒置時下載。
- preload chunk 會在父 chunk 中立即請求,用於當下時刻。prefetch chunk 會用於未來的某個時刻。
// 謹慎使用 不然有損效能問題,
import(/* webpackPreload: true */ 'ChartingLibrary')
// 未來繫結的事件
import(/* webpackPrefetch: true */ './path/to/LoginModal.js')
快取
輸出檔案的檔名用 [name].[contenthash].js
主要是contenthash根據檔案的內容去生產的hash值
SplitChunksPlugin可以將模組分到單獨的bundle中,可以將第三方庫提取到一個單獨的vendor chunk中,這樣就可以利用client的長效快取機制,命中快取來清楚請求,減少向server傳送請求的次數同時還保證了client和server程式碼版本一致。
optimization: {
/**
* 修改檔案導致打包的第三方的chunk的contenthash變化
*/
moduleIds: 'deterministic',
runtimeChunk: 'single',
splitChunks: {
cacheGroups: {
vendor: {
test: /[\\/]node_modules[\\/]/,
name: 'vendors',
chunks: 'all',
}
}
}
},
建立library
// ES2015
import * as webpackLibrary from 'webpack-library'
// Commonjs
const webpackLibrary = require('webpack-library')
// AMD
require(['webpackLibrary'], function (webpackLibrary) {
// ...
});
相關文章
- MySQL配置(Ubuntu篇 供新使用者參考)(轉)MySqlUbuntu
- .NET 是資訊科技應用創新產業重要參與者產業
- 客廳戰爭新參者:騰訊雲遊戲「START」電視版體驗談遊戲
- 升級Webpack5實踐Web
- 股票操作的參與者
- webpack5文件解析(下)Web
- webpack5文件解析(上)Web
- 深度解析webpack5持久化快取Web持久化快取
- 學習 Webpack5 之路(優化篇)Web優化
- 前端 CentOS7 新服配置參考前端CentOS
- SAP使用者入門參考文件
- 新三板怎麼買 新三板參與流程
- 基於webpack5封裝的cli工具packxWeb封裝
- 從零開始使用 webpack5 搭建 react 專案WebReact
- Webpack5 - 開發伺服器 webpack-dev-serverWeb伺服器devServer
- 浪潮新基建參編多項白皮書釋出
- 以post方式傳參方式開啟新視窗
- 威脅參與者如何進入 OT 系統
- 專案經理和專案參與者(轉)
- RabbitMQ 新增新使用者MQ
- mySql 新增新使用者MySql
- Taro 3.5 beta 編譯提速,支援 Webpack5、React 18...編譯WebReact
- 最新 umi4-max 如何使用 webpack5 聯邦模組Web
- 基於 Webpack5 Module Federation 的業務解耦實踐Web解耦
- vue 內開啟一個新視窗,帶傳參!Vue
- 弗羅姆的領導者-參與模型(轉載)模型
- MySQL新增新使用者、為使用者建立資料庫、為新使用者分配許可權MySql資料庫
- 解讀新技術,解鎖新玩法,HarmonyOS開發者日杭州站等你來參加
- 關於Webpack5 搭建 React 多頁面應用介紹WebReact
- 智慧制動器參加“匯新杯”新興科技+網際網路創新大賽
- 盤古大模型參與者解讀盤古β大模型大模型
- 9歲女孩成為蘋果開發者大會最小參會者蘋果
- 誠徵譯者的日文新書新書
- 誠徵譯者的英文新書新書
- Emacs 尋找新的維護者Mac
- Webpack5構建速度提升令人驚歎,早升級早受益Web
- Swift 4遷移總結:喜憂參半,新的起點Swift
- win10新增新使用者的方法_w10系統怎麼增加新使用者Win10