vue-webpack4升级

vue-webpack3x - > webpack4x

  • 先在原来的项目里升级所有的依赖包

npm update
  • 相比webpack3x webpack4x需要多安装一个webpack-cli

npm install webpack-cli
  • 原来删除的extract-text-webpack-plugin使用mini-css-extract-plugin替代

// 使用yarn

yarn remove extract-text-webpack-plugin

yarn add --dev mini-css-extract-plugin

// webpack3x

const ExtractTextPlugin = require('extract-text-webpack-plugin');
if (options.extract) {
  return ExtractTextPlugin.extract({
    use: loaders,
    allback: 'vue-style-loader'
  })
} else {
  return ['vue-style-loader'].concat(loaders)
}
// 改为
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
if (options.extract) {
  return [MiniCssExtractPlugin.loader].concat(loaders)
} else {
  return ['vue-style-loader'].concat(loaders)
}

// webpack.prod.conf.js
const ExtractTextPlugin = require('extract-text-webpack-plugin');
new ExtractTextPlugin({
  filename: utils.assetsPath('css/[contenthash].css')
})
// 改为
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
new MiniCssExtractPlugin({
  filename: utils.assetsPath('css/[contenthash].css')
})
  • webpack.base.conf.js

// 在入口之前 添加 新版webpack强制要求添加,不添加也可以执行,会有警告
module.exports = {
  mode: process.env.NODE_ENV, // development || production || none
  ...
}
  • 针对找不到eslint的报错

// 在webpack.dev.conf.js 和 webpack.prod.conf.js 中的plugins下 添加(只是单纯的添加) 如下配置
new webpack.LoaderOptionsPlugin({ options: {} })
  • 由于新版webpack不支持CommonsChunkPlugin所以需要把相关配置进行换换
new webpack.optimize.CommonsChunkPlugin({
      name: 'vendor',
      minChunks: function (module, count) {
        // 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.CommonsChunkPlugin({
  name: 'manifest',
  chunks: ['vendor']
})

// 把上面的删除了  --- 然后在 plugins 的同级 添加

optimization: {
    runtimeChunk: {
      name: 'manifest'
    },
    splitChunks: {
      cacheGroups: {
        commons: {
          test: /[\\/]node_modules[\\/]/,
          name: 'vendor',
          chunks: 'all'
        }
      }
    }
}

// 后面的这个配置如果配置有误会提示 ERROR in chunk 【你的多页面模块名】 [entry] 报错
  • 安装插件

// 针对代码压缩报错

yarn add --dev uglifyjs-webpack-plugin

new webpack.optimize.UglifyJsPlugin({
  compress: {
    warnings: false
  },
  sourceMap: true
})

// 改为

const UglifyJsPlugin = require('uglifyjs-webpack-plugin');

new UglifyJsPlugin({
  uglifyOptions: {
    compress: {
      warnings: false
    }
    },
    sourceMap: true
})

参考资料:

webpack中文网:https ://www.webpackjs.com/
npm官网:https://www.npmjs.com/ 查看新安装的包的使用方法
其他博客:...

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
npm install vue-beautiful-chat npm WARN ERESOLVE overriding peer dependency npm WARN While resolving: extract-text-webpack-plugin@3.0.2 npm WARN Found: webpack@4.46.0 npm WARN node_modules/webpack npm WARN peer webpack@"^4.0.0" from @intervolga/optimize-cssnano-plugin@1.0.6 npm WARN node_modules/@intervolga/optimize-cssnano-plugin npm WARN @intervolga/optimize-cssnano-plugin@"^1.0.5" from @vue/cli-service@3.12.1 npm WARN node_modules/@vue/cli-service npm WARN 24 more (@soda/friendly-errors-webpack-plugin, ...) npm WARN npm WARN Could not resolve dependency: npm WARN peer webpack@"^3.1.0" from extract-text-webpack-plugin@3.0.2 npm WARN node_modules/extract-text-webpack-plugin npm WARN extract-text-webpack-plugin@"^3.0.1" from vue-photo-preview@1.1.3 npm WARN node_modules/vue-photo-preview npm WARN npm WARN Conflicting peer dependency: webpack@3.12.0 npm WARN node_modules/webpack npm WARN peer webpack@"^3.1.0" from extract-text-webpack-plugin@3.0.2 npm WARN node_modules/extract-text-webpack-plugin npm WARN extract-text-webpack-plugin@"^3.0.1" from vue-photo-preview@1.1.3 npm WARN node_modules/vue-photo-preview npm WARN ERESOLVE overriding peer dependency npm WARN While resolving: uglifyjs-webpack-plugin@0.4.6 npm WARN Found: webpack@4.46.0 npm WARN node_modules/webpack npm WARN peer webpack@"^4.0.0" from @intervolga/optimize-cssnano-plugin@1.0.6 npm WARN node_modules/@intervolga/optimize-cssnano-plugin npm WARN @intervolga/optimize-cssnano-plugin@"^1.0.5" from @vue/cli-service@3.12.1 npm WARN node_modules/@vue/cli-service npm WARN 24 more (@soda/friendly-errors-webpack-plugin, ...) npm WARN npm WARN Could not resolve dependency: npm WARN peer webpack@"^1.9 || ^2 || ^2.1.0-beta || ^2.2.0-rc || ^3.0.0" from uglifyjs-webpack-plugin@0.4.6 npm WARN node_modules/uglifyjs-webpack-plugin npm WARN uglifyjs-webpack-plugin@"^0.4.6" from webpack@3.12.0 npm WARN node_modules/vue-photo-preview/node_modules/webpack npm WARN npm WARN Conflicting peer dependency: webpack@3.12.0 npm WARN node_modules/webpack npm WARN peer webpack@"^1.9 || ^2 || ^2.1.0-beta || ^2.2.0-rc || ^3.0.0" from uglifyjs-webpack-plugin@0.4.6 npm WARN node_modules/uglifyjs-webpack-plugin npm WARN uglifyjs-webpack-plugin@"^0.4.6" from webpack@3.12.0 npm WARN node_modules/vue-photo-preview/node_modules/webpack
06-14

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值