DLLPlugin 和 DLLReferencePlugin的使用

DLLPlugin 和 DLLReferencePlugin的使用

DLLPlugin 和 DLLReferencePlugin 用某種方法實現了拆分 bundles,同時還大大提高了構建的速度。html

1.首先build文件夾添加----webpack.dll.config.js:vue

var path = require("path");
var webpack = require("webpack");  module.exports = {  // 要打包的模塊的數組  entry: {  vendor: ['vue/dist/vue.esm.js','vue-router']  },  output: {  path: path.join(__dirname, '../static/js'), // 打包後文件輸出的位置  filename: '[name].dll.js',// vendor.dll.js中暴露出的全局變量名。  library: '[name]_library' // 與webpack.DllPlugin中的`name: '[name]_library',`保持一致。  },  plugins: [  new webpack.DllPlugin({  path: path.join(__dirname, '.', '[name]-manifest.json'),  name: '[name]_library',  context: __dirname  }),  ] }; 複製代碼

2.在package.json的scripts里加上:webpack

"dll": "webpack --config build/webpack.dll.config.js",
複製代碼

3.運行npm run dllstatic/js下生成vendor-manifest.json;web

4.在build/webpack.base.conf.js里加上:vue-router

// 添加DllReferencePlugin插件
 plugins: [  new webpack.DllReferencePlugin({  context: __dirname,  manifest: require('./vendor-manifest.json')  })  ], 複製代碼

5.而後在index.html中引入vendor.dll.jsnpm

<div id="app"></div>
<script src="./static/js/vendor.dll.js"></script> 複製代碼

至此,配置以後的:json

能夠看到npm run build後的時間大幅度減小,在dist打包體積上也比以前的小。在項目優化中,能夠很大程度上加快項目的構建速度和減小項目的打包體積。數組

掃碼關注

相關文章
相關標籤/搜索