您好,登錄后才能下訂單哦!
在項目打包上有兩個目標:減少打包代碼體積和加快打包速度
1. 減少打包體積:
(1)對于用的比較少的庫,可以去掉(我去掉了jquery以及lodash),用到的地方,參考源碼自己寫
(2)非用不可的又比較大的庫(我這里用了monaco-edit),使用cdn方式引入
打包體積減少的情況下,自然速度也會有所提升
2. 加快打包速度:
我目前做了這些:
(1)vue-cli2升級到vue-cli3,順便webpack2升級到webpack4,構建速度一下子從3分鐘左右提升到不到1分鐘(vue-cli3升級過程 https://www.jb51.net/article/160146.htm
(2)使用 DllPlugin 進行預編譯,過程如下:
· npm install webpack-cli --save-d
· 獨立出一套webpack配置webpack.dll.conf,用dllPlugin定義要打包的dll文件;這里我在根目錄下新建webpack.dll.conf.js 內容如下
const path = require("path"); const webpack = require("webpack"); module.exports = { entry: { vendor: [ "vue-router/dist/vue-router.esm.js", "vuex/dist/vuex.esm.js", "axios" ] }, output: { path: path.join(__dirname, "public/vendor"), filename: "[name].dll.js", library: "[name]_[hash]" // vendor.dll.js中暴露出的全局變量名 }, plugins: [ new webpack.DllPlugin({ path: path.join(__dirname, "public/vendor", "[name]-manifest.json"), name: "[name]_[hash]", context: process.cwd() }) ] };
注意;在vue-cli3中一定要把生成的dll放到public中或者自己去配置publicPath (沒仔細看文檔掉進坑)
· package.json中定義運行webpack.dll.conf.js的命令
{ ··· "scripts": { "serve": "npm link typescript && vue-cli-service serve", <strong>"dll": "webpack -p --progress --config ./webpack.dll.conf.js",</strong> ··· }, ··· }
· 運行npm run dll命令生成dll
· index.html中加載生成的dll文件
<script src="./vendor/vendor.dll.js"></script>
· 以上已經完成預編譯并載入;但是一定不要忘記webpack構建時告訴webpack哪些文件已被預編譯,使構建過程忽略這些已預編譯的文件;
具體做法就是在vue.config.js的配置文件中添加
const webpack = require("webpack"); module.exports = { ··· configureWebpack: { plugins: [ new webpack.DllReferencePlugin({ context: process.cwd(), manifest: require("./public/vendor/vendor-manifest.json") }) ] } ··· }
總結
以上所述是小編給大家介紹的vue-cli3使用 DllPlugin 實現預編譯提升構建速度 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。