webpack5的踩坑记
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、webpack-dev-server启动失败?二、与 browserslist 冲突导致热更新失效三、output.clean前言提示:升级webpack5之后的奇奇怪怪的问题一、webpack-dev-server启动失败?Error: Cannot find module ‘webpack-cli/bin/conf
前言
提示:升级webpack5之后的奇奇怪怪的问题
一、webpack-dev-server启动失败?
Error: Cannot find module ‘webpack-cli/bin/config-yargs’
原因:从 wepack4.x/webpack-cli 3.x 的搭配升级到了 webpack5.x/webpack-cli 4.x
4/3启动命令为:‘webpack-dev-server’
5/4版本webapck-cli目录做了修改,因此会报错,启动命令修改为‘webpack serve’ 即可
二、与 browserslist 冲突导致热更新失效
webpack-dev-server内部配了websocket, 可启动后浏览器并未见websocket服务,因此也未有热更新效果。
原因:在 package.json 里面写了 browserslist,与 browserslist 冲突导致热更新失效
方法一、删除 package.json 里的 browserslist(如果package.json 里面写了 browserslist)
方法二、在 webpack 配置中设置 target 字段,来在开发阶段使得 browserslist 失效(如果package.json 里面写了 browserslist):
webpack.config.js
module.exports = {
target: process.env.NODE_ENV === "development" ? "web" : "browserslist", // 添加这一句
};
方法三、在 webpack 配置中直接设置
在 webpack 配置中直接设置:
module.exports = {
target: "web", // 添加这一句
};
三、output.clean
5.20.0+
5.20以下版本清除dist文件内容一般使用插件 clean-webpack-plugin, 5.20版本以后output新增特性clean,用于清除dist文件
module.exports = {
//...
output: {
clean: true, // Clean the output directory before emit.
},
};
module.exports = {
//...
output: {
clean: {
dry: true, // Log the assets that should be removed instead of deleting them.
},
},
};
module.exports = {
//...
output: {
clean: {
keep: /ignored\/dir\//, // Keep these assets under 'ignored/dir'.
},
},
};
// or
module.exports = {
//...
output: {
clean: {
keep(asset) {
return asset.includes('ignored/dir');
},
},
},
};
昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链
更多推荐



所有评论(0)