Skip to content

[BUG] npm generates build output impossible to archive under Windows #8455

@fredericDelaporte

Description

@fredericDelaporte

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

  1. Under Windows (11 24H2) with Node.js 22.17.1 and npm 11.4.2
  2. Create a new nuxt project: npm create nuxt@latest npm-loop (Nuxt 4.0.1 currently) with minimal options (no modules).
  3. cd npm-loop
  4. Edit the package.json file Vue dependency: downgrade it to 3.5.13 without a caret. "vue": "3.5.13".
  5. Run npm i.
  6. Run `npm run build``
  7. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Bugthing that needs fixingNeeds Triageneeds review for next steps

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions