• 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 文件变小了 

     

     

  • 相关阅读:
    软件定义网络(SDN)研究进展
    第四章:地址解析协议
    Open vSwitch流表应用实战
    Open vSwitch使用案例扩展实验
    mininet实验 脚本实现控制交换机行为
    mininet实验 动态改变转发规则实验
    websocket
    mongodb增删改查常用命令总结
    Mongo简介
    Redis数据库常用命令总结
  • 原文地址:https://www.cnblogs.com/caolidan/p/11023417.html
Copyright © 2020-2023  润新知