Skip to content

No more working under npm 12 #615

Description

@Badisi

Issue

Running npx patch-package ... under npm 12 will now produce the following error:

npx patch-package nx
npm notice run npx
npm notice run 'patch-package' nx
patch-package 8.0.1
• Creating temporary folder
• Installing nx@22.7.5 with npm
{
  status: 1,
  signal: null,
  output: [ null, null, null ],
  pid: 81284,
  stdout: null,
  stderr: null,
  error: null
}

/Users/xyz/node_modules/patch-package/dist/makePatch.js:395
        throw e;
        ^
{
  status: 1,
  signal: null,
  output: [ null, null, null ],
  pid: 81284,
  stdout: null,
  stderr: null,
  error: null
}

Node.js v24.18.0

Explanation

Changing stdio to inherit here:

} catch (e) {
// try again while ignoring scripts in case the script depends on
// an implicit context which we haven't reproduced
spawnSafeSync(`npm`, ["i", "--ignore-scripts", "--force"], {
cwd: tmpRepoNpmRoot,
stdio: "ignore",
})
}

will now gives better hint on the issue:

• Installing nx@22.7.5 with npm
npm warn using --force Recommended protections disabled.
npm error code EALLOWREMOTE
npm error Fetching packages of type "remote" have been disabled
npm error Refusing to fetch "nx@https://registry.npmjs.org/nx/-/nx-22.7.5.tgz"
npm error A complete log of this run can be found in: /Users/xyz/.npm/_logs/2026-08-02T00_31_48_537Z-debug-0.log

Npm 12 now set allow-remote=none by default, which blocks any background installations trying to download direct tarballs (.tgz files) from an absolute remote URL, even if it points to the official registry.

Temporary solution

Use the following:

npm_config_allow_remote=all npx patch-package ...

Fix

Add the argument --allow-remote=all to both npm commands:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions