nx
nx copied to clipboard
MultipleProjectsWithSameNameError when `.git` folder is missing but gitignored `dist` contains `project.json`
Current Behavior
Nx fails to process the project graph when .gitignore'd dist contains project.json, but .git folder is missing.
This situation is common in TeamCity since, by default, it uses
VCS checkout mode: Always checkout files on server, which means that there is no.gitfolder in the working directory. As a workaround, I useVCS checkout mode: Always checkout files on agent, but it is slower.
Expected Behavior
Nx should not fail analyze .gitignore'd files (when there is no .git folder), allowing to run nx commands
GitHub Repo
No response
Steps to Reproduce
# generate empty workspace with nx-dotnet project called my-api
npx create-nx-workspace@latest nx1930 --preset=apps --workspaceType=integrated --ci=skip
cd nx1930
npm i -D @nx-dotnet/core
nx g @nx-dotnet/core:init
nx g @nx-dotnet/core:app my-api --directory=apps --template webapi --test-template nunit --language C# --path-scheme nx
create apps/my-api/project.json with the following content:
{ "name": "my-api", "tags": ["api"]}
# check that build works
nx build my-api
# remove .git folder
mv .git tmp
nx reset
# observe the error
nx show projects --verbose
Nx Report
Node : 20.12.2
OS : win32-x64
npm : 10.8.1
nx (global) : 19.3.0
nx : 19.3.0
@nx/js : 19.3.0
@nx/workspace : 19.3.0
@nx/devkit : 19.3.0
@nrwl/tao : 19.3.0
typescript : 5.4.5
---------------------------------------
Registered Plugins:
@nx-dotnet/core
---------------------------------------
Community plugins:
@nx-dotnet/core : 2.2.0
Failure Logs
NX Failed to process project graph. Run "nx reset" to fix this. Please report the issue if you keep seeing it. See errors below.
Failed to process project graph. Run "nx reset" to fix this. Please report the issue if you keep seeing it.
MultipleProjectsWithSameNameError: The following projects are defined in multiple locations:
- my-api:
- apps/my-api
- dist/apps/my-api/net7.0
To fix this, set a unique name for each project in a project.json inside the project's root. If the project does not currently have a project.json, you can create one that contains only a name.
at validateAndNormalizeProjectRootMap (C:\temp\nx1930\node_modules\nx\src\project-graph\utils\project-configuration-utils.js:446:15)
at mergeCreateNodesResults (C:\temp\nx1930\node_modules\nx\src\project-graph\utils\project-configuration-utils.js:325:9)
at C:\temp\nx1930\node_modules\nx\src\project-graph\utils\project-configuration-utils.js:266:85
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async processFilesAndCreateAndSerializeProjectGraph (C:\temp\nx1930\node_modules\nx\src\daemon\server\project-graph-incremental-recomputation.js:148:43)
at async getCachedSerializedProjectGraphPromise (C:\temp\nx1930\node_modules\nx\src\daemon\server\project-graph-incremental-recomputation.js:46:16)
at async handleRequestProjectGraph (C:\temp\nx1930\node_modules\nx\src\daemon\server\handle-request-project-graph.js:12:24)
at async handleResult (C:\temp\nx1930\node_modules\nx\src\daemon\server\server.js:130:16)
at async handleMessage (C:\temp\nx1930\node_modules\nx\src\daemon\server\server.js:89:9)
at async C:\temp\nx1930\node_modules\nx\src\daemon\server\server.js:55:9
Package Manager Version
No response
Operating System
- [ ] macOS
- [X] Linux
- [X] Windows
- [ ] Other (Please specify)
Additional Information
No response
I think the issue may also affect git repos where the nx project is not at the root, for example my-repo/nx-root/... worked in 19.2.3 but breaks in 19.3.0. (I can provide additional details if needed)
Failed to process project graph. Run "nx reset" to fix this. Please report the issue if you keep seeing it.
MultipleProjectsWithSameNameError: The following projects are defined in multiple locations:
- my-repo:
- projects/project1
- ../unrelated/project1
I know this seems unrelated, but the fix is merged to master and in here: #22870
You can try on canary to verify.
@AgentEnder just tried [email protected] and the issue seems fixed.
While trying it, I also encountered an issue with nx reset, but it is already tracked by #27006 and can be worked around via ps node | kill (powershell).
This issue has been closed for more than 30 days. If this issue is still occuring, please open a new issue with more recent context.