Skip to content

[BUG] dist-tag in package.json not re-evaluated #7562

Closed as not planned
Closed as not planned
@SchulteDev

Description

@SchulteDev

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

Context

I am using a packages npm-dist-tag in my package.json

// An example
"devDependencies": {
  "nx": "canary"
}

Running npm i after adding such a dependency to the package.json works as intended, for time being 19.2.0-canary.20240528-7f11a1d of nx is being fetched and written to the package-lock.json.

dist-tag not re-evaluated

Now, I am using a npm-dist-tag, which does not exist:

"devDependencies": {
  "nx": "dist-tag-not-available-oohhhhhh"
}

Running npm i after adding such a dependency does not work - which is in my opinion correct:

$ npm i
npm error code ETARGET
npm error notarget No matching version found for nx@dist-tag-not-available-oohhhhhh.
npm error notarget In most cases you or one of your dependencies are requesting
npm error notarget a package version that doesn't exist.

But, if I first install nx=canary as I described in context, and change canary to dist-tag-not-available-oohhhhhh in the package.json afterwards, npm i just works fine. The package-lock.json remains untouched in this case, with nx still pointing to 19.2.0-canary.20240528-7f11a1d

Additional question

I wonder, what happens when nx=canary is being used, and the canary dist-tag gets updated - does npm i update the actual version of nx?

Expected Behavior

In the second case, when a npm-dist-tag in the packge.json is being changed to a non-existing one, I would expect NPM to throw an error as it does, when I try to init such a dependency.

Steps To Reproduce

  1. Add nx=canary as dependency to package.json
  2. npm i (nx is being installed)
  3. Change nx to nx=dist-tag-not-available-oohhhhhh in package.json
  4. npm i => executes just fine, nx=canary remains, no error

Environment

npm: 10.8.0
Node.js: v20.10.0
OS Name: Windows 11
System Model Name: Lenovo IdeaPad

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