【解决】前端项目编译卡在95% emitting HtmlWebpackPlugin很长时间

文章描述了一种情况,即新加入的研发人员在不同操作系统上遇到项目编译速度慢的问题,主要卡在95%emittingHtmlWebpackPlugin阶段。经过排查,问题最终定位为依赖版本不兼容。解决方案包括删除node_modules,拷贝正常速度电脑的package-lock.json,重新安装依赖,或者针对特定操作系统找出导致慢的依赖进行解决。注意Mac和Windows的package-lock.json文件不通用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

快速出击

原因 :问题原因最终定位在部分依赖版本不兼容,不适配。
解决方案 :删除node_modules文件夹,拷贝编译速度不慢人员电脑中的package-lock.json文件,然后执行npm install(或者直接把node_modules打包拷贝过来),此时项目编译恢复正常速度。
注意 :Mac电脑和Windows电脑的package-lock.json文件不通用。
如果只有你一个人是“其他”操作系统,那可能需要针对性的找出究竟是那个依赖导致系统变慢了。

说在前面

最近项目里新进入了几个研发人员,他们拉起项目后代码无论是首次启动或是保存代码后的编译,都会卡在
95% emitting HtmlWebpackPlugin
这个阶段很长时间,理论上到了这一步大概几秒钟就可以编译完成了。

解决方案

(一)
因为是不同系统的电脑,所以首先考虑是操作系统的问题,然后换了台windows电脑,结果仍然是很慢。
(二)
看电脑配置,Mac配置一般较高,查看以后,window电脑的配置也不错,排除。
(三)
增大node可分配内存,具体操作大家可以参考调整Node运行内存全攻略,包教包会。
提升内存后,项目仍然是卡在这个阶段很长时间。
(四)
那就只剩下一种可能了,依赖版本问题,最后我拷贝了本机的package-lock.json文件,重新安装依赖,项目启动和编译时间恢复正常。

说到最后

不同操作系统的package-lock.json不同,所以不能通用,所以拷贝之前需要确认下对方的操作系统。
如果只有你一个人是“其他”操作系统,那可能需要针对性的找出究竟是那个依赖导致系统变慢了。

### 解决Webpack CompressionPlugin 发射错误 当使用 Webpack 的 `CompressionPlugin` 插件时,可能会遇到一些常见的构建问题,比如发射错误(emitting error)。以下是可能的原因以及解决方案: #### 可能原因分析 1. **文件路径冲突**:如果目标目录下已经存在同名文件,则可能导致插件无法覆盖或写入新文件。 2. **压缩配置不当**:某些情况下,未正确设置 `test` 或者 `asset` 属性会引发异常行为。 3. **依赖版本不兼容**:不同版本的 Webpack 和 `compression-webpack-plugin` 存在一定的适配关系。 --- #### 解决方案 ##### 方法一:调整插件配置 确保 `CompressionPlugin` 配置合理。以下是一个典型的配置示例[^1]: ```javascript const CompressionWebpackPlugin = require('compression-webpack-plugin'); module.exports = { plugins: [ new CompressionWebpackPlugin({ algorithm: 'gzip', test: /\.(js|css|html|svg)$/, // 定义需要被压缩的文件类型 threshold: 10240, // 设置只有超过该大小的资源才会被处理,默认值为 10k minRatio: 0.8 // 压缩率小于阈值的文件会被忽略 }) ] }; ``` 上述代码通过指定 `algorithm`, `test`, `threshold`, 和 `minRatio` 参数来优化插件的行为,从而减少潜在的错误发生概率。 ##### 方法二:清理旧版缓存 有时之前的打包产物残留会影响当前构建过程。可以尝试删除 `dist` 文件夹或者清除 Webpack 缓存后再重新执行命令[^2]: ```bash rm -rf dist/ npm run build ``` ##### 方法三:升级相关依赖包 确认所使用的 Webpack 版本与 `compression-webpack-plugin` 是否完全匹配。如果不一致,建议更新至最新稳定版本并测试效果。例如,在 package.json 中添加如下内容后运行安装指令: ```json { "devDependencies": { "webpack": "^5.x", "compression-webpack-plugin": "^9.x" } } ``` 随后执行: ```bash npm install ``` --- #### 测试验证 完成以上修改之后,再次启动开发服务器以观察是否恢复正常工作状态: ```bash npm run dev ``` 假如一切顺利的话,应该能够看到类似于下面的日志输出表明编译成功: ``` DONE Compiled successfully in 18305ms 下午10:43:07 I Your application is running here: http://localhost:8080 ``` ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值