導航:首頁 > 源碼編譯 > vue編譯cdn

vue編譯cdn

發布時間:2025-09-14 11:49:31

㈠ 詳解Webpack如何引入CDN鏈接來優化編譯後的體積



背景


在 Vue 項目中,引入到工程中的所有 js 文件,編譯時都會被打包進 vendor.js,也就導致了 vendor.js 文件體積變得相當臃腫,一定程度上影響著頁面的渲染。為了減少編譯後的體積,提高頁面渲染速度,我們可以通過引入 CDN 鏈接把庫分離,多線程非同步 js 庫,從而達到加速渲染的目的。那麼我們如何做呢?

步驟


1.引入CDN鏈接


在項目的 index.html 中,常規方式引入 CDN 鏈接,此處以 vue 和 element-ui 為例:

<body>
<div id="app"></div>
<!-- CDN方式引入vue -->
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<!-- CDN方式引入element-ui -->
<script src="https://unpkg.com/[email protected]/lib/index.js"></script>
</body>
2.添加externals屬性


Vue-cli 2

在項目的 build/webpack.base.conf.js 中,在下面合適位置添加 externals 相關語句,在 entry 後面加入即可:

mole.exports = {
context: path.resolve(__dirname, '../'),
entry: {
function: './src/main.js'
},
externals:{
'vue': 'Vue',
'element-ui': 'ElementUI'
}
...
}
Vue-cli 3

在項目根目錄的 vue.config.js 中,將 configureWebpack 配置代碼塊添加進入即可:

mole.exports = {
configureWebpack:{
externals: {
'vue': 'Vue',
'element-ui': 'ElementUI'
}
}
}
注意:在上述代碼中,'vue': 'Vue' 對應形式為 key : value,其中 key 為項目中引用的名稱,而 value 是資源本身定義的名稱(不可改),正常情況下我們可以參照 src/main.js 進行查看:

import Vue from 'vue'
import ElementUI from 'element-ui'
//打開src/main.js查閱以上兩行代碼,其前面作為value,後面作為key。
3.注釋import及Vue.use(xxx)


在項目的 src/main.js 中,注釋掉以下語句:

// import Vue from 'vue'
// import ElementUI from 'element-ui'
// import 'element-ui/lib/theme-chalk/index.css'
import App from './App'
Vue.config.proctionTip = false
// Vue.use(ElementUI)
註:使用 eslint 規則的項目請不要注釋 import 及 Vue.use,除非你不使用那煩人的 eslint。

完成以上步驟後就可以開始執行 npm run build,你會發現編譯後的 vendor.js 從幾百K降到幾十K,也就意味著優化體積已經成效。另外,有好多網友先前為了減少體積就已經配置了 按需引入,如果引入 CDN 之後,記得把按需引入的配置去掉哦,因為引入 CDN 之後就不存在按需引入這種說法啦!

閱讀全文

與vue編譯cdn相關的資料

熱點內容
手游雲頂文件夾 瀏覽:935
msvc和mingw都是編譯器嗎 瀏覽:423
數控機床編程解析 瀏覽:384
新老鳥虛擬資源網解壓碼 瀏覽:557
如何用域用戶登錄ftp伺服器 瀏覽:22
如何將讀書郎平板升級安卓系統 瀏覽:338
XC16編譯器有免費的嗎 瀏覽:498
編譯和程序編輯 瀏覽:847
androidv4和v7 瀏覽:714
iphoneapp怎麼從文件夾安裝 瀏覽:21
去掉加密平板電腦 瀏覽:376
二叉樹用什麼編譯器寫 瀏覽:322
手機除了主板還有什麼app 瀏覽:183
如何還原在伺服器上刪除的文件 瀏覽:851
pdf轉成黑白的 瀏覽:20
程序員為什麼是單身 瀏覽:928
選項卡中的命令組被稱為什麼 瀏覽:261
navicatlinux破解 瀏覽:612
加密視頻可以用採集卡嗎 瀏覽:292
php正則表達式2 瀏覽:482