Home > OS >  package-lock.json in npm workspaces
package-lock.json in npm workspaces

Time:12-24

Given an npm workspace with the following structure

workspace
    package.json
    packages
        package-a
            package.json
        package-b
            package.json

When I run an install command in package-a this will generate a package-lock.json file in the root of the workspace but not in the package.json file itself.

Is there a way to also generate it in the packages?

CodePudding user response:

I don't know if this solves your problem, but you can specifie the folder in which you would install with --prefix

npm install --prefix ./install/here

CodePudding user response:

you can use the lerna tool to manage your workspace and install dependencies in each package. you can generate package-lock.json files in each package in your workspace.

The Original Tool for JavaScript Monorepos. Monorepo means a repository with multiple packages.

lerna.js.org

I hope this answer will show you the right direction.

CodePudding user response:

In most cases, running npm install within that package directory should do the job. But as you said that this is creating a global package-lock.json. This might be because the package you are installing might be specifying the global path using the prefix field. The "prefix" field, specifies the location where the package's dependencies should be installed.

So one thing you can do is to go to the package.json in package-a and then either remove the prefix field from the package.json file OR set its value as following :

{
  "name": "my-package",
  "version": "1.0.0",
  "prefix": "./",
  "dependencies": {
    ...
  }
}

Now when you run npm install it should install the packages locally and make a local 'package-lock.json`.

  •  Tags:  
  • npm
  • Related