Jac*_*ues 4 monorepo angular nrwl-nx
我花了一些时间开发 PowerShell 项目,以自动构建基于 @Nrwl NX monorepos 的 C# 和 Angular 应用程序。在此之前一切工作正常,但当我尝试一个简单的:
nx build --baseHref=/apps/admin/ --deployUrl=/apps/admin/ --watch
Run Code Online (Sandbox Code Playgroud)
我现在得到错误
ENOENT: "no such file or directory, open 'd:\Projects\TheApp\Source\Angular.Apps/apps/the-client/src/environments/environment.prod.ts'"
Run Code Online (Sandbox Code Playgroud)
问题:我认为它正在寻找environment.prod.ts,因为replaceFile部分,但由于我是在本地开发中构建的,所以我认为它根本不应该进行替换。
另外:即使我正在构建 APP-ADMIN 应用程序,它也在寻找 APP-CLIENT 环境文件。
在我的构建自动化项目中可能导致问题的一些点:
我重命名了workspace.json 中的所有应用程序配置。因此,例如“生产”变成了“生产客户端1”,它在替换过程中使用了environment.prod.client1.ts文件
“fileReplacements”:[
{
“替换”:“apps/app-admin/src/environments/environment.ts”,
“with”:“apps/app-admin/src/environments/environment.prod.orgb.ts”}
],
在上面的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
Run Code Online (Sandbox Code Playgroud)
这就像管理应用程序和每个客户端的变体一样具有魅力。只有在开发构建期间我才会遇到这些问题。
编辑1:
我在我拥有的两个“应用程序”类型项目中为environment.prod.ts和environment.staging.ts创建了虚拟文件,这解决了问题。这些文件是空白的,所以不确定为什么为 Dev/local 构建不只是处理environment.ts 文件
我在以下 GitHub 报告问题的评论中找到了答案:已删除文件的“错误:ENOENT:没有这样的文件或目录”#3370
归根结底是 Nrwl 文件 file-hasher.js 使用了 git 哈希,并且由于我没有提交这些更改,所以它正在寻找旧文件名。我通过在当前分支上暂存并提交所有更改来解决这个问题。
进一步看,这似乎是一个错误,后来在 Nx 10.0.2 及更高版本中修复,但我们尚未升级到该版本。
| 归档时间: |
|
| 查看次数: |
1472 次 |
| 最近记录: |