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

迁移ng-app-state库至Angular CLI v6时执行ng test带参数报错求助

解决Angular CLI v6中ng test多目标+参数覆盖的错误

这个问题我之前在迁移monorepo项目到Angular CLI v6时也碰到过,本质是CLI的Architect系统对命令参数和目标项目的解析规则变了。

错误原因

你运行的命令ng test --source-map ng-app-state被CLI解析成了:同时对所有匹配的项目(这里是ng-app-state-monorepo和ng-app-state两个)执行test命令,并且应用--source-map参数覆盖。但Architect不允许这种在多个目标上直接指定参数覆盖的操作,因为它无法确认你是否要把这个参数应用到所有匹配的项目上,所以抛出了这个错误。

解决方案

方案1:明确指定单个项目并传递参数

把项目名放在参数前面,让CLI明确知道你要对哪个项目应用参数覆盖:

ng test ng-app-state --source-map

这样CLI会只针对ng-app-state项目运行测试,同时启用source map,不会触发多目标冲突。

方案2:批量运行多个项目(通过配置统一设置参数)

如果你需要对多个项目运行测试且都启用source map,建议修改根目录的angular.json配置:

  1. 找到projects下的ng-app-state-monorepo和ng-app-state对应的test配置段
  2. 将options里的sourceMap设置为true:
    "test": {
      "options": {
        "sourceMap": true,
        // 其他配置...
      }
    }
    
  3. 然后运行批量测试命令:
    ng test --projects ng-app-state-monorepo,ng-app-state
    

这样所有指定项目都会使用配置好的source map设置,不用在命令行传递参数,避免冲突。

方案3:仅对默认项目运行测试

如果你的工作区有默认项目,直接运行:

ng test --source-map

CLI会只针对默认项目执行测试,不会匹配多个目标。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:25:57