Skip to content

[BUG] Root level gets local version of dependency instead of version from registry #2672

Closed
@DmitriyZverev

Description

@DmitriyZverev

When I use workspaces, and on the root level I need a previous version of a package (package was defined in workspaces), I get current (local) version of the package.

Steps To Reproduce:

There is a file structure:

root/
│
├── packages/
│   │
│   ├── foo/
│   │   │ 
│   │   └── package.json
│   │
│   └── bar/
│       │ 
│       └── package.json
│
└── package.json

Where:

  • root/package.json:

    {
        "name": "@scope/root",
        "wokspaces": [
            "packages/*"
        ],
        "dependencies": {
            "@scope/foo": "1.0.0-dev.0"
        }
    }
  • root/packages/foo/package.json:

    {
        "name": "@scope/foo",
        "version": "1.0.0-dev.1"
    }
  • root/packages/bar/package.json:

    {
        "name": "@scope/bar",
        "version": "1.0.0-dev.1",
        "dependencies": {
            "@scope/foo": "1.0.0-dev.0"
        }
    }

And version 1.0.0-dev.0 of package @scope/foo is already published in a private registry.

Current Behavior:

Command npm install makes next node_modules structure:

root/
│
├── node_modules/
│   │
│   └── @scope/
│       │
│       └── foo/ -> root/packages/foo (symlink to 1.0.0-dev.1)
│
└── packages/
    │
    └── bar/
        │ 
        └── node_modules/
            │
            └── @scope/
                │
                └── foo/ (installed 1.0.0-dev.0 from registry)

So when I require @scope/foo package on the root level, I get version 1.0.0-dev.1 although dependency for @scope/root was defined as 1.0.0-dev.0.

Expected Behavior:

Command npm install makes next node_modules structure:

root/
│
└── node_modules/
    │
    └── @scope/
        │
        └── foo/ (installed 1.0.0-dev.0 from registry)

So when I require @scope/foo package on the root level, I get version 1.0.0-dev.0 as expected.

Environment:

  • OS: Linux Mint 20.1
  • Node: 15.4.0
  • npm: 7.5.3

Metadata

Metadata

Assignees

No one assigned

    Labels

    Bugthing that needs fixingRelease 7.xwork is associated with a specific npm 7 release

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions