Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] Regression: custom scripts not executed on dependencies from custom registry #4821

Open
2 tasks done
Cactusbone opened this issue Apr 28, 2022 · 6 comments
Open
2 tasks done
Labels
Bug thing that needs fixing Needs Triage needs review for next steps Release 8.x work is associated with a specific npm 8 release

Comments

@Cactusbone
Copy link

Cactusbone commented Apr 28, 2022

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

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/test-npm-scripts@1.0.0 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

  1. To demonstrate we'll be using https://gitlab.com/Cactusbone/test-npm-scripts package.
  2. With a package.json containing
"dependencies": {
    "@cactusbone/test-npm-scripts": "^1.0.0"
},
  1. and a .npmrc file with
    @cactusbone:registry=https://gitlab.com/api/v4/packages/npm/
  2. run npm i --foreground-scripts
  3. 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

@Cactusbone Cactusbone added Bug thing that needs fixing Needs Triage needs review for next steps Release 8.x work is associated with a specific npm 8 release labels Apr 28, 2022
@Cactusbone Cactusbone changed the title [BUG] custom scripts not executed when package is on a custom registry [BUG] custom scripts not executed on dependencies from custom registry Apr 28, 2022
@Cactusbone Cactusbone changed the title [BUG] custom scripts not executed on dependencies from custom registry [BUG] Regression: custom scripts not executed on dependencies from custom registry Jun 17, 2022
@Cactusbone
Copy link
Author

still not working with npm 9.3.1

@ylc1234567
Copy link

Possibly not a bug but a removed feature :
#3056

@Cactusbone
Copy link
Author

Possibly not a bug but a removed feature : #3056

The removed feature in NPM 7 is "console output" by default, It now requires --foreground-scripts to be displayed. However install script from dependencies from either official NPM registry or git dependencies works normally.

What's currently broken is script from dependencies from other NPM registries

@Cactusbone
Copy link
Author

still not working with npm 10.2.4

@Cactusbone
Copy link
Author

I've found another workaround, by declaring an install script at the app level:

"install": "npm explore @cactusbone/test-npm-scripts -- npm install",

This ensures that npm i at the app level call the install script of the lib

@Kenneth-Sills
Copy link

Kenneth-Sills commented Jul 18, 2024

Confirmed not working with 10.8.2.

EDIT: Seeing the Gitlab URL for your registry, this may actually be a duplicate of #5380, also related to Gitlab #344107.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug thing that needs fixing Needs Triage needs review for next steps Release 8.x work is associated with a specific npm 8 release
Projects
None yet
Development

No branches or pull requests

3 participants