Angular10升级至Angular13启动报错:Schema验证失败及参数重复
解决Angular 10升级至13后启动命令的报错问题
1. 修复命令行参数重复问题
错误提示选项'--'已多次指定,核心是参数传递逻辑冲突:
- 先检查
package.json中scripts字段下的start命令,若脚本本身已包含--(比如"start": "ng serve --"),再执行npm run start -- --configuration=dev-dmz就会导致重复传递--。 - 解决方案:要么将
start脚本恢复为"start": "ng serve",保留原启动命令;要么直接执行npm run start --configuration=dev-dmz,去掉重复的--。
2. 修复angular.json Schema验证失败问题
Data path "" must NOT have additional properties()说明你的angular.json存在Angular 13 Schema不允许的冗余配置:
- 优先通过官方升级命令完成配置迁移:
该命令会自动适配Angular 13的配置规范,移除废弃属性、调整结构。ng update @angular/cli@13 @angular/core@13 - 若手动修改过
angular.json,对比Angular 13新项目的默认配置,删除多余属性:- 根节点仅保留
$schema、version、newProjectRoot、projects、defaultProject字段; - 检查各项目
architect下的build/serve配置,删除已废弃的字段(比如旧格式的fileReplacements、冗余的assets配置项等)。
- 根节点仅保留
- 用
ng config --validate命令快速定位非法配置项。
3. 清理依赖并重新安装
若上述步骤无效,大概率是依赖版本不匹配或缓存问题:
- 删除
node_modules文件夹和package-lock.json文件; - 执行
npm install重新安装依赖; - 确保所有Angular核心依赖(
@angular/core、@angular/cli、@angular/common等)均为13.x的一致版本,避免跨版本混杂。
内容的提问来源于stack exchange,提问作者Adam the Llama
相关产品推荐
相关产品推荐

