Angular 5升级至Angular 6后执行构建命令出现Schema验证错误
解决Angular 6构建时的Schema Validation错误
这个问题我之前升级Angular版本的时候也碰到过,核心原因是Angular CLI 6+对命令行参数做了调整:原来Angular 5里的-op(--output-path的简写)在新版本里已经不被支持,而且-o现在被重新定义为--optimization参数(--prod模式下默认已经开启),这就导致CLI的参数schema验证发现了不合法的额外属性,抛出了你看到的错误。
快速修复命令
直接把原来的-op替换为完整的--output-path参数就行,修正后的构建命令如下:
ng build --prod --locale=de --base-href /onlineshopNP/de/ --output-path dist/de
更优雅的长期方案(推荐)
如果经常需要构建多语言版本,建议直接在angular.json里配置对应的构建参数,这样后续构建会更简洁:
- 打开项目根目录的
angular.json文件,找到你的项目配置(通常在projects节点下的项目名称) - 在
architect->build->configurations节点下,新增一个针对德语环境的配置:
"de": { "localize": ["de"], "baseHref": "/onlineshopNP/de/", "outputPath": "dist/de" }
- 之后只需要执行以下命令就能完成德语环境的生产构建:
ng build --prod --configuration=de
这样不仅避免了每次输入一大串参数,也能减少参数写错的概率~
内容的提问来源于stack exchange,提问作者StoRm Tec
相关产品推荐
相关产品推荐

