执行npm install && npm run dev出现webpack编译警告如何处理
3 WARNINGS in child compilations (Use 'stats.children: true' resp. '--stats-children' for more details)
webpack compiled with 3 warnings
查看警告具体详情的方法
警告里已经给出了明确的开启方式,分临时查看和永久配置两种方案:
- 临时查看(单次启动生效):直接在启动命令后追加
--stats-children参数,注意npm传参需要先加--做分隔,完整命令为:
执行后终端会完整打印所有子编译过程的警告详情,不会只显示汇总信息。npm run dev -- --stats-children - 永久配置(每次启动都自动展示):在项目的webpack配置中添加stats规则,开启子编译日志输出:
如果是使用封装好的脚手架(未eject配置),可以通过脚手架提供的配置改写项添加规则:// webpack.config.js module.exports = { // 其他原有配置 stats: { children: true } }- Vue CLI项目:在
vue.config.js的configureWebpack字段下添加上述stats配置 - Create React App项目:可以通过craco、react-app-rewired等配置工具注入上述stats规则,不需要eject
- Vue CLI项目:在
这类子编译警告的排查处理思路
webpack的child compilations(子编译)一般是html模板处理、web worker打包、静态资源压缩、插件内部临时编译这类非主入口代码的编译任务,默认不展开日志,排查的时候按以下步骤走就行:
- 第一步先定位来源:拿到完整警告日志后,先看警告标注的文件路径、触发的loader/插件名称,先确定是哪个环节出的警告,常见触发源包括
html-webpack-plugin、mini-css-extract-plugin、静态资源loader、worker相关loader这几类。 - 按警告类型对应处理:
- 资源体积超限警告:提示asset超过size limit的,小体积资源可以配置url-loader转base64,大资源可以做压缩、调整performance配置的体积阈值,或者拆分资源上传CDN。
- 资源路径不存在警告:一般是html模板里引用的js/css/图片路径拼写错误、文件被删除导致的,核对路径修正即可。
- 版本兼容警告:提示某个插件/loader用了废弃API、和当前webpack版本不匹配的,升级对应依赖到适配当前webpack版本的稳定版即可,不影响功能的话开发阶段可以暂时忽略。
- source map生成警告:一般是devtool配置和子编译loader不兼容,开发环境可以换用
eval-cheap-module-source-map这类轻量devtool配置重试。
注意:如果警告不影响页面本地运行、生产构建产物正常,不需要强行消除所有警告,优先处理会导致功能异常的警告即可。
内容的提问来源于stack exchange,提问作者Nkidijohn Nkogatse
相关产品推荐
相关产品推荐

