Nx Angular - 没有那个文件或目录,打开 'd:\...\TheApp\Source\Angular.Apps/apps/app-client/src/environments/environment.prod.ts'

Nx Angular - no such file or directory, open 'd:\...\TheApp\Source\Angular.Apps/apps/app-client/src/environments/environment.prod.ts'

我花了一些时间在 PowerShell 项目上工作,以自动化我的 C# 和 Angular 应用程序的一些构建,这些应用程序基于 @Nrwl NX monorepos。在此之前一切正常,但是当我尝试一个简单的时候:

nx build --baseHref=/apps/admin/ --deployUrl=/apps/admin/ --watch 

我现在得到错误

ENOENT: "no such file or directory, open 'd:\Projects\TheApp\Source\Angular.Apps/apps/the-client/src/environments/environment.prod.ts'" 

问题:我认为它正在寻找 environment.prod.ts 因为 replaceFile 部分,但由于我是在本地开发中构建的,所以我认为它不应该这样做根本没有替代品。
另外:它正在寻找 APP-CLIENT 环境文件,即使我正在构建 APP-ADMIN 应用程序。

在我的构建自动化项目中可能导致问题的一些要点:

  1. 我重命名了 workspace.json 中的所有应用程序配置。因此,例如“production”变成了“production-client1”,它在替换过程中使用了 environment.prod.client1.ts 文件

    “文件替换”:[
    {
    “替换”:“apps/app-admin/src/environments/environment.ts”,
    “与”:“apps/app-admin/src/environments/environment.prod.orgb.ts” }
    ],

  2. 在1)上面我提到了environment.prod.client1.ts文件,原来是environment.prod.ts文件。由于错误提到找不到此文件,可能是问题出在此处,或者我应该更改一些其他配置才能使其正常工作?

最后说明:我的 powershell cmdlet 调用以下命令:

nx build portfolio-client --deleteOutputPath=false --baseHref=/apps/client/ --deployUrl=/apps/client/ --configuration=staging-client-client1 

这就像管理应用程序和每个客户端的变体一样有魅力。我只是在开发构建期间遇到了这些问题。

编辑 1:
我在我拥有的两个“应用程序”类型项目中为 environment.prod.ts 和 environment.staging.ts 创建了虚拟文件,这解决了问题。这些文件是空白的,但不确定为什么 Dev/local 的构建不只是在 environment.ts 文件

上工作

我在以下 GitHub 报告的问题的评论中找到了答案:"Error: ENOENT: no such file or directory" for deleted file #3370

归根结底,Nrwl 文件 file-hasher.js 使用了 git 哈希,因为我没有提交这些更改,所以它正在寻找一个旧文件名。我通过暂存并提交当前分支上的所有更改来解决它。

进一步看,这似乎是一个错误,后来在 Nx 10.0.2 及更高版本中修复,我们还没有升级到。