(轉(zhuǎn))使用webpack.DllPlugin與webpack.DllReferencePlugin解決webpack打包慢問題

解決webpack打包速度太慢
使用webpack插件webpack.DllPlugin與webpack.DllReferencePlugin將不需要改動(dòng)的第三方插件與自己的業(yè)務(wù)代碼進(jìn)行分開打包,
首先:
在項(xiàng)目根目錄新建一個(gè)文件webpack.dll.config.js

const path    = require('path');
const webpack = require('webpack');
module.exports = {
  entry: {
      vendor: ['vue-router','vuex','vue/dist/vue.common.js','vue/dist/vue.js','vue-loader/lib/component-normalizer.js','vue']
  },
  output: {
    path: path.resolve(base.path),
    filename: '[name].dll.js',
    library: '[name]_library'
  },
  plugins: [
    new webpack.DllPlugin({
      path: path.resolve('./dist', '[name]-manifest.json'),
      name: '[name]_library'
    })
  ]
};

將是用到的第三方插件添加到vendor中
然后:在webpack.config.js中添加代碼

plugins: [
    new webpack.DllReferencePlugin({
      manifest: require('./dist/vendor-manifest.json')
    })
  ]

還需要在入口html文件中引入vendor.dll.js

<script type="text/javascript" src="./../vendor.dll.js"></script>
// 在package.json中添加
"scripts": {
    "dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot",
    "build": "cross-env NODE_ENV=production webpack --progress --hide-modules",
    "build:dll": "webpack --config webpack.dll.config.js"
    -----------------------------------------------------
  },

最后打包的時(shí)候首先執(zhí)行npm run build:dll命令會(huì)在打包目錄下生成
vendor-manifest.json文件與vendor.dll.js文件。
Dll這個(gè)概念應(yīng)該是借鑒了Windows系統(tǒng)的dll。一個(gè)dll包,就是一個(gè)純純的依賴庫,它本身不能運(yùn)行,是用來給你的app引用的。
打包dll的時(shí)候,Webpack會(huì)將所有包含的庫做一個(gè)索引,寫在一個(gè)manifest文件中,而引用dll的代碼(dll user)在打包的時(shí)候,只需要讀取這個(gè)manifest文件,就可以了。
然后在執(zhí)行npm run build
發(fā)現(xiàn)現(xiàn)在的webpack打包速度為2,3秒作用,與之前的20秒左右快了很多。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • GitChat技術(shù)雜談 前言 本文較長,為了節(jié)省你的閱讀時(shí)間,在文前列寫作思路如下: 什么是 webpack,它要...
    蕭玄辭閱讀 12,874評(píng)論 7 110
  • 寫在開頭 先說說為什么要寫這篇文章, 最初的原因是組里的小朋友們看了webpack文檔后, 表情都是這樣的: (摘...
    Lefter閱讀 5,432評(píng)論 4 31
  • 無意中看到zhangwnag大佬分享的webpack教程感覺受益匪淺,特此分享以備自己日后查看,也希望更多的人看到...
    小小字符閱讀 8,359評(píng)論 7 35
  • 本文主要介紹兩個(gè)插件:DllPlugin和DllReferencePlugin,后者配合前者使用。 Github地...
    yozosann閱讀 11,169評(píng)論 4 27
  • 新出的書 元月二十四日 新出的書是快遞員送上門的 他說,真沉 在他的手機(jī)上簽了自己的姓名 就像辦完領(lǐng)養(yǎng)手續(xù) 一層一...
    飛雪姐姐閱讀 251評(píng)論 1 0

友情鏈接更多精彩內(nèi)容