收集:关于升级到webpack5以及module、plugins的变动

const VueLoaderPlugin = require('vue-loader/lib/plugin');

Cannot find module 'vue-loader/lib/plugin'

从16.0.0版本开始引用这种方法会报错,因为已经放弃了上述的引入方式,改以解构引入方式引入VueLoaderPlugin

const { VueLoaderPlugin } = require('vue-loader')

less-loader的版本不同,配置不同。


V6.0.0之前
options: {
javascriptEnabled: true
}
V6.0.0之后
options: {
lessOptions: {
javascriptEnabled: true
}
}

const webpack = require('webpack')

new webpack.HashedModuleIdsPlugin() 变为new webpack.ids.HashedModuleIdsPlugin()

CommonsChunkPlugin已在4的时候去除,改用optimization.splitChunks 和 optimization.runtimeChunk

const CopyWebpackPlugin = require("copy-webpack-plugin")

CopyWebpackPlugin的选项配置改变了

举例:从

new CopyWebpackPlugin([
      {
        from: "./doc",//源路径
        to: "./doc",//目标路径
        ignore: ['.*']
      }
    ])

变为

    new CopyWebpackPlugin({
      patterns: [
        {
            from: "./doc",//源路径
            to: "./doc",//目标路径
        },
            globOptions: {
                 ignore: ['.*']
            }
        ]
    })

官网提供:从 v4 升级到 v5 | webpack 中文文档

以下的配置项,请升级至最新的版本:

  • optimization.hashedModuleIds: true → optimization.moduleIds: 'hashed'
  • optimization.namedChunks: true → optimization.chunkIds: 'named'
  • optimization.namedModules: true → optimization.moduleIds: 'named'
  • NamedModulesPlugin → optimization.moduleIds: 'named'
  • NamedChunksPlugin → optimization.chunkIds: 'named'
  • HashedModuleIdsPlugin → optimization.moduleIds: 'hashed'
  • optimization.noEmitOnErrors: false → optimization.emitOnErrors: true
  • optimization.occurrenceOrder: true → optimization: { chunkIds: 'total-size', moduleIds: 'size' }
  • optimization.splitChunks.cacheGroups.vendors → optimization.splitChunks.cacheGroups.defaultVendors
  • optimization.splitChunks.cacheGroups.test(module, chunks) → optimization.splitChunks.cacheGroups.test(module, { chunkGraph, moduleGraph })
  • Compilation.entries → Compilation.entryDependencies
  • serve → serve 已被移除,推荐使用 DevServer
  • Rule.query (从 v3 开始被移除) → Rule.options/UseEntry.options
  • Rule.loaders → Rule.use

例子:

optimization: {

    moduleIds: 'named' // webpack5 采用此方式代替 NamedModulesPlugin

  },

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值