Angular 6.0.1 CLI执行ng lint --type-check时抛出Architect错误求助
解决Angular CLI v6中
ng lint --type-check多项目报错问题 这个错误是Angular CLI v6的行为变化导致的:当你执行ng lint不带项目名时,它会默认对所有在angular.json中配置的项目(你的场景里是atlas-fe和atlas-fe-e2e)运行lint检查。而--type-check属于命令行覆盖参数,CLI不允许在同时针对多个项目运行时使用这类参数——因为不同项目的lint配置可能存在差异,无法统一应用这个覆盖项。
解决方案1:指定单个项目运行lint
修改你package.json里的lint-ts脚本,明确指定只对主项目atlas-fe执行lint+类型检查:
"lint-ts": "npm run format-ts && ng lint atlas-fe --type-check"
这样命令只会作用于单个项目,就可以正常使用--type-check参数了。
解决方案2:把类型检查配置到项目的lint选项中(更推荐)
如果你不想每次都在命令行加参数,可以直接修改angular.json文件,把typeCheck设为默认选项:
- 找到
projects.atlas-fe.architect.lint.options节点 - 添加
"typeCheck": true配置项,示例如下:
"lint": { "builder": "@angular-devkit/build-angular:tslint", "options": { "tsConfig": [ "src/tsconfig.app.json", "src/tsconfig.spec.json" ], "exclude": [ "**/node_modules/**" ], "typeCheck": true // 新增这一行 } }
之后你只需要运行ng lint atlas-fe(或者把package.json里的lint-ts改成npm run format-ts && ng lint atlas-fe),就会自动执行类型检查了。
额外说明
如果你需要对e2e项目也做lint检查,可以单独添加一个脚本,比如:
"lint-e2e": "ng lint atlas-fe-e2e"
因为e2e项目通常不需要类型检查(或者配置逻辑不同),分开执行会更灵活。
内容的提问来源于stack exchange,提问作者Nuno Roma
相关产品推荐
相关产品推荐

