npm - install dependencies for a package in a different folder?

Update: Since the --prefix option exists, I now vote for @coudy's answer to this question. Original answer below:

No, npm will always install in the current directory or, with -g, in the system wide node_modules. You can kind of accomplish this with a subshell though, which won't affect your current directory:

(cd some_project && npm install)

The parentheses makes it run in a subshell.


You can use the npm install <folder> variant with the --prefix option. In your scenario the folder and prefix will be the same:

npm --prefix ./some_project install ./some_project

Create a package.json in the root directory with the following contents:

{
    "dependencies": {
        "helloworldprojectname": "file:hello\\world"
    }
}

Then call this to install:

npm install --prefix ./hello/world

It installs ./hello/world/node_modules using ./hello/world/package.json.

(Windows 10, Node v10.16.0, npm 7.6.1)


On windows 10 using powershell the only thing that worked for me without all the problems and edge-cases mentioned in this blog post was this

Start-Process -Wait -FilePath "npm" -ArgumentList "install" -WorkingDirectory $web_dir

Tags:

Node.Js

Npm