cli
cli copied to clipboard
[BUG] Regression: custom scripts not executed on dependencies from custom registry
Is there an existing issue for this?
- [X] I have searched the existing issues
This issue exists in the latest npm version
- [X] I am using the latest npm
Current Behavior
Using npm i --foreground-scripts
(or npm ci --foreground-scripts
after the first install), no logs from install
script are emitted for a package with a custom registry.
It does work when packages are on the main npm registry.
I've created a package to reproduce this: https://gitlab.com/Cactusbone/test-npm-scripts and I'm using @nexhome/yorkie
to check normal behaviour (main registry)
Increasing verbosity in npm logs did not show anything, there's only one line with my package
npm timing reifyNode:node_modules/@cactusbone/test-npm-scripts Completed in 75ms
The expected line npm info run @cactusbone/[email protected] install
is never produced.
Expected Behavior
Scripts from packages on a custom registry should be executed.
This is working on npm 6, but not on npm 7 and npm 8
Steps To Reproduce
- To demonstrate we'll be using https://gitlab.com/Cactusbone/test-npm-scripts package.
- With a package.json containing
"dependencies": {
"@cactusbone/test-npm-scripts": "^1.0.0"
},
- and a .npmrc file with
@cactusbone:registry=https://gitlab.com/api/v4/packages/npm/
- run
npm i --foreground-scripts
- no logs are produced.
To ensure this is okay from npm registry, I also added "@nexhome/yorkie": "^2.0.8",
as a dependency, and this package does produce logs upon installation.
Environment
- npm: 8.8.0
- Node.js: 16.15.0
- OS Name: Windows 11 Professionnel 21H2 22000.613
- System Model Name: custom desktop
- npm config:
; prefix = "C:\\Program Files (x86)\\Nodist\\bin" ; overridden by env
; "project" config from C:\Prod\test-npm-script-app\.npmrc
@cactusbone:registry = "https://gitlab.com/api/v4/packages/npm/"
; "env" config from environment
prefix = "C:\\Program Files (x86)\\Nodist\\bin"
; node bin location = C:\Program Files (x86)\Nodist\v-x64\16.15.0\node.exe
; node version = v16.15.0
; npm local prefix = C:\Prod\test-npm-script-app
; npm version = 8.8.0
; cwd = C:\Prod\test-npm-script-app
; HOME = C:\Users\cka
; Run `npm config ls -l` to show all defaults.
I've also tried it under WSL (ubuntu 20.04 on windows, with nvm, node v16.15.0 and npm v8.5.5), and results are the same
Work arounds:
- use npm 6 or earlier
- use git link instead of registry
It is also possible to trigger the scripts by using npm explore @cactusbone/test-npm-scripts -- npm install