npm - install dependencies for a package in a different folder?
node.jsNpmnode.js Problem Overview
I have the following directory structure:
/some_project
source.js
package.json
I would like to install the dependencies for some_project. I know I could cd into some_project and then run npm install
But I was wondering if it's possible without changing the directory ? Something like
npm install some_project/package.json
node.js Solutions
Solution 1 - node.js
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
Solution 2 - node.js
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.
Solution 3 - node.js
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
Solution 4 - node.js
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)
Solution 5 - node.js
On Windows 10 I couldn't get --prefix
to work, so I had to cd
and execute it.
cd PATH_TO_FOLDER && npm install