zoukankan      html  css  js  c++  java
  • vue webpack3 升级webpack4

    据说webpack3 比webpack4 编译速度将近快了60%-80%,

    成功升级之后,于是来记录下,项目主要是vue ^2.5.9 , webpack ^4.10.2 , webpack-dev-sever ^3.1.4 ,配合升级的还有vue-loader ^15

    项目重现编译之后由原来的1.7MB 减少到1.1MB ,看来在压缩这块也是由效果的。

    需要修改的地方有以下几点:

    vue-loader 14 到15 需要增加如下配置

    const VueLoaderPlugin = require('vue-loader/lib/plugin')  ++++
    const MiniCssExtractPlugin = require('mini-css-extract-plugin')   // webpack 4  +++
    
    const ExtractTextPlugin = require('extract-text-webpack-plugin') //for webpack3  -----
    
    module.exports = {
    ...
    plugins: [
            + new VueLoaderPlugin(),  ++++
            + new MiniCssExtractPlugin({filename:'mian.css'})  //for webpack 4 +++ 
             - new ExtractTextPlugin({filename:'main.css'}) //for webpack 3 ---
    ]
    ...
    }
    

    webpack-dev-server 升级之后需做如下改动

    devServer: {
         ++ contentBase: path.resolve(__dirname, '../dos-html'),  // 需要指定路径 ++
            port: 7001, 
            hot: true,
            // open: false,
            inline: true,
            compress: true,
            historyApiFallback: true,
           ....
        },
    

    webpack 3 升级 4 之后需要改动的配置

    plugins: [
       //已经移除
       new webpack.optimize.CommonsChunkPlugin({
           name: 'vendor',
           minChunks: function (module) {
             // any required modules inside node_modules are extracted to vendor
             return (
               module.resource && /.js$/.test(module.resource) &&
               module.resource.indexOf( path.join(__dirname, '../node_modules')) === 0
             )
           }
         }), 
       new webpack.optimize.UglifyJsPlugin(...)//已经移除
    }
    
    ===> 修改为以下
    
    const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
    
    moudel.exports = {
    
    mode: 'production', ++ 这里指定模式。
    ...
    optimization: {
        splitChunks: {
          name(module) {
            return (
              module.resource && /.js$/.test(module.resource) &&
              module.resource.indexOf(path.join(__dirname, '../node_modules')) === 0
            )
          }
        },
        minimize: true, 
        minimizer: [
          new UglifyJsPlugin({
            uglifyOptions: {
              compress: {
                warnings: false,
                // drop_debugger: true,
                // drop_console: true
              },
              sourceMap: false
            }
          })
        ]
      },
    ...
    }
    

    其他的各种报错信息,注意看,可能是模块版本太低了吧,都升级下就OK了。
    [完]

  • 相关阅读:
    接口开发总结
    python多线程的坑
    ImageMagick 安装 window10与错误总结
    中文时间转换数字时间
    postgresql数据库中~和like和ilike的区别
    pdfplumber库解析pdf格式
    网络基础-数据通信过程
    渗透测试思路总述
    网络基础-OSI七层模型
    网络基础-常用网络测试工具
  • 原文地址:https://www.cnblogs.com/chuchur/p/10462213.html
Copyright © 2011-2022 走看看