webpack實踐——DLLPlugin 和 DLLReferencePlugin的使用


DLLPlugin 和 DLLReferencePlugin的使用

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

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

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里加上:

"dll": "webpack --config build/webpack.dll.config.js",

3.運行npm run dll 在static/js下生成vendor-manifest.json;
4.在build/webpack.base.conf.js里加上:

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

5.然后在index.html中引入vendor.dll.js:

<div id="app"></div>
<script src="./static/js/vendor.dll.js"></script>

至此,配置之后的:
可以看到npm run build后的時間大幅度減少,在dist打包體積上也比之前的小。在項目優化中,可以很大程度上加快項目的構建速度和減少項目的打包體積。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM