升级Angular 6后报错:无法重新声明块级作用域变量'ngDevMode'
解决Angular升级后
ngDevMode重复声明的错误 这个问题我在Angular版本升级过程中也遇到过,核心原因是你的Angular核心依赖版本不一致,导致ngDevMode变量被重复定义了。
从你的package.json里能看到:
@angular/core是^6.0.0- 其他Angular包(比如
@angular/common、@angular/compiler等)都是^6.0.3
当不同版本的Angular核心文件被同时加载时,ng_dev_mode.d.ts里的ngDevMode变量会被多次声明,触发TypeScript的重复定义错误。
解决步骤:
统一Angular核心包版本
打开package.json,把@angular/core的版本修改为^6.0.3,和其他Angular包保持一致:"@angular/core": "^6.0.3",清理旧依赖和缓存
删除项目根目录下的node_modules文件夹和package-lock.json(如果用yarn则删除yarn.lock):rm -rf node_modules package-lock.json # Windows系统执行: # rmdir /s /q node_modules && del package-lock.json重新安装依赖
执行安装命令重新拉取一致版本的依赖:npm install验证并启动项目
先检查依赖树确认版本统一:npm ls @angular/core确认所有
@angular/core的依赖都是6.0.3后,启动项目:ng serve
额外排查点:
如果执行完上述步骤还是报错,可能是其他第三方依赖间接引入了旧版本的@angular/core。可以用npm ls @angular/core查看依赖树,找到违规的包:要么升级该包到兼容Angular 6.0.3的版本,要么通过package.json里的resolutions字段(npm需配合npm-force-resolutions工具)强制指定@angular/core的版本。
内容的提问来源于stack exchange,提问作者Alessandro Celeghin
相关产品推荐
相关产品推荐

