-
Notifications
You must be signed in to change notification settings - Fork 3.6k
Description
Is there an existing issue for this?
- I have searched the existing issues
This issue exists in the latest npm version
- I am using the latest npm
Current Behavior
Some package dependencies may result into a node_modules build output containing folder links to some parents of themselves.
Under Windows, these links are created as junctions, see #5189. Junctions are not symbolic links and no archive tooling seem able to keep them as links, they dereference them when archiving. This results in an infinite loop with some crashes at some point.
So, effectively, such project build output of npm cannot be put in a archive file, and cannot be moved to another computer for deployment.
Expected Behavior
Npm should generate build output that can be put in an archive file.
Steps To Reproduce
- Under Windows (11 24H2) with Node.js 22.17.1 and npm 11.4.2
- Create a new nuxt project:
npm create nuxt@latest npm-loop
(Nuxt 4.0.1 currently) with minimal options (no modules). cd npm-loop
- Edit the package.json file Vue dependency: downgrade it to 3.5.13 without a caret.
"vue": "3.5.13"
. - Run
npm i
. - Run `npm run build``
- Run
tar -czvf output.tar.gz .output
The tar command fails by looping endlessly.
tar.exe: .output/server/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/server-renderer/node_modules/vue/node_modules/@vue/compiler-dom: Cannot stat: Invalid argument
tar.exe: Error exit delayed from previous errors.
(Vue 3.5.13 is the latest version which does not trigger a reactivity bug causing some parts of our web pages to no more get updated at some point, despite the computed they depends on is updated and its updates are still reflected in other parts of the same page, even on sub tags of tags having attribute nor more updated by the same computed... Subsequent versions including latest current one 3.5.18 cause this kind of bugs in our web app.)
Environment
- npm: 11.4.2
- Node.js: 22.17.1
- OS Name: Windows 11 24H2 26100.4652 (originally spotted on Windows Server 2022)
- System Model Name: DELL Latitude 5550 (originally spotted on an AWS EC2 t3.large)
- npm config:
; "builtin" config from C:\Users\fdelaporte\AppData\Roaming\npm\node_modules\npm\npmrc
prefix = "C:\\Users\\fdelaporte\\AppData\\Roaming\\npm"
; node bin location = C:\Program Files\nodejs\node.exe
; node version = v22.17.1
; npm local prefix = D:\Tests\TestsNode\npm-loop
; npm version = 11.4.2
; cwd = D:\Tests\TestsNode\npm-loop
; HOME = C:\Users\fdelaporte
; Run `npm config ls -l` to show all defaults.