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