You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Angular 5.2升级至6.1时执行ng serve/ng build报错求助

解决Angular 5.2升级到6.1时mini-css-extract-plugin的createHash解构错误

我之前在升级Angular项目时也碰到过完全一样的问题,这大概率是依赖版本不兼容导致的,给你几个亲测有效的解决方案:

1. 降级mini-css-extract-plugin到兼容版本

Angular 6对应的Webpack版本是4.x,而较新版本的mini-css-extract-plugin已经不再适配Webpack 4,所以会出现找不到createHash的错误。你可以把插件降级到0.4.x或0.5.x版本:

  • 先卸载当前版本:
    npm uninstall mini-css-extract-plugin
    
  • 安装兼容版本:
    npm install mini-css-extract-plugin@^0.4.0 --save-dev
    

2. 清理依赖缓存并重新安装

有时候本地依赖缓存会导致版本冲突,执行以下步骤重置依赖:

  • 删除node_modules文件夹(Windows系统用rd /s /q node_modules):
    rm -rf node_modules
    
  • 删除package-lock.json文件:
    rm package-lock.json
    
  • 重新安装所有依赖:
    npm install
    

3. 确保Angular CLI版本与Angular 6.1匹配

如果你的Angular CLI版本过高(比如7+),也会和项目中的依赖产生冲突。先检查当前CLI版本:

ng --version

如果版本不是6.x,执行以下步骤降级:

  • 全局卸载旧CLI:
    npm uninstall -g @angular/cli
    
  • 安装Angular 6.1对应的CLI版本:
    npm install -g @angular/cli@6.1.0
    
  • 同步更新项目本地的CLI依赖:
    npm install @angular/cli@6.1.0 --save-dev
    

4. 检查Webpack版本是否适配

Angular 6内部依赖Webpack 4.x,如果你手动安装了Webpack,确保版本是4.x而非5.x:

npm list webpack

如果版本不对,调整到4.x的兼容版本即可。

错误原因说明

这个错误的核心是mini-css-extract-plugin尝试从Webpack对象中解构createHash方法,但由于插件版本过高(适配Webpack 5+)或者Webpack版本不匹配,导致无法获取到该属性,最终抛出解构错误。

内容的提问来源于stack exchange,提问作者stian64

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:54:41