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

node.jsNpm

node.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 

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionFlorinView Question on Stackoverflow
Solution 1 - node.jscoudyView Answer on Stackoverflow
Solution 2 - node.jsLinus ThielView Answer on Stackoverflow
Solution 3 - node.jsbottleneckedView Answer on Stackoverflow
Solution 4 - node.jsAraloxView Answer on Stackoverflow
Solution 5 - node.jsYoannes GeisslerView Answer on Stackoverflow