vue +webpack 打包配置優化


1.利用DllPlugin,DllReferencePlugin ,UglifyJsPlugin分離第三方庫文件,使打包后的vendor文件變小。

DllPlugin通過entry獲取config中library的第三方庫,和我們開發代碼進行分離,生成一個獨立的js 文件

UglifyJsPlugin 是將js 進行打包 ,DllReferencePlugin 引入解析打包后的第三方庫文件

首先需要添加webpack.dll.conf.js 文件,該文件的配置如下:

const path = require('path')
const webpack = require('webpack')
const {library} = require('../config')
module.exports = {
  entry: library.entry,
  output: {
    path: path.join(__dirname, '../dll'),
    filename: `[name].${library.version}.dll.js`,
    library: '[name]_library' // vendor.dll.js中暴露出的全局變量名
  },
  plugins: [
    new webpack.DllPlugin({
      path: path.join(__dirname, '.', '[name].manifest.json'),
      name: '[name]_library'
    }),
    new webpack.optimize.UglifyJsPlugin({
      compress: {
        warnings: false
      }
    })
  ]
}

 在config.的index.js 中配置第三方庫

  /**
   * 庫文件
   */
  library: {
    /**
     * node_module
     */
    entry: {
      'vueBucket': [
        'vue',
        'vue-router',
        'vuex',
        'axios',
        'moment'
      ]
    },
    pluginsCss: {
      global: [{
        name: 'element-ui',
        path: './src/assets/css/theme-default/index.css',
        font: './src/assets/css/theme-default/fonts'
      },
      {
        name: 'vue2-animate',
        path: './node_modules/vue2-animate/dist/vue2-animate.min.css'
      }, {
        name: 'iconfont',
        path: './src/assets/css/iconfont.css',
        font: 'src/assets/css/fonts'
      }
      ]
    },
    // 版本
    version: 'v1.0'
  },

  在webpack.base.conf.js 中配置引用

 plugins: [
    // 解析DllPlugin 打包的node_module
    new webpack.DllReferencePlugin({
      context: path.resolve(__dirname, '..'),
      manifest: require('./vueBucket.manifest.json')
    })
  ]

 在package.json 中配置,打包第三庫文件的命令

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

 執行 npm run dll ,后再次打包,發現vendor 文件變小了 

 

 


免責聲明!

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



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