最近将项目升级到了vue-cli5和webpack5,发现之前有些loader和插件的链式调用后回调参数args为undefined,如url-loader和html-webpack-plugin,tap函数的回调参数options和args为undefined或者null。
看了wb5文档后发现是新版本去除了node核心polyfill库(4之前自带),需要进行手动引入,如下配置(仅列举了三个,其它请自己配置):
configureWebpack: {
plugins: [],
...
// 关键代码
resolve: {
fallback: {
path: require.resolve('path-browserify'),
url: require.resolve('url-loader'),
html: require.resolve('html-webpack-plugin'),
}
}
}
tips: 关于html-webpack-plugin,如果是用的vue-cli,不能用官方github或者网上别的原生webpack的配置方法:手动引入html-webpack-plugin,再use(htmlWebpackPlugin),如下图。这样会多出来一个新的页面配置,因为vue-cli本来就自带了一个配置。