How can I get npm start at a different directory?

node.js

node.js Problem Overview


I usually cd into the app directory and then run npm start.

It is my feeling that there ought to be some way to run npm start with a path parameter. But, the npm start documentation contains no such feature.

I tried myself only to find npm start ./myapp does not work. Is there a way to do that?

node.js Solutions


Solution 1 - node.js

This one-liner should work:

npm start --prefix path/to/your/app

Corresponding doc

Solution 2 - node.js

Below Command where project is a folder which contains package.json file

npm run --prefix project ${COMMAND}

is working as well. Useful in Docker based applications.

Solution 3 - node.js

I came here from google so it might be relevant to others: for yarn you could use:

yarn --cwd /path/to/your/app run start 

Solution 4 - node.js

npm start --prefix path/to/your/app

& inside package.json add the following script

"scripts": {
   "preinstall":"cd $(pwd)"
}

Solution 5 - node.js

This one-liner should work too:

(cd /path/to/your/app && npm start)

Note that the current directory will be changed to /path/to/your/app after executing this command. To preserve the working directory:

(cd /path/to/your/app && npm start && cd -)

I used this solution because a program configuration file I was editing back then didn't support specifying command line arguments.

Solution 6 - node.js

Per this npm issue list, one work around could be done through npm config

name: 'foo'
config: { path: "baz" },
scripts: { start: "node ./$npm_package_config_path" }

Under windows, the scripts could be { start: "node ./%npm_package_config_path%" }

Then run the command line as below

npm start --foo:path=myapp

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
QuestionBlaiseView Question on Stackoverflow
Solution 1 - node.jsAmaury LietView Answer on Stackoverflow
Solution 2 - node.jsitiicView Answer on Stackoverflow
Solution 3 - node.jsOr DuanView Answer on Stackoverflow
Solution 4 - node.jsRafael17View Answer on Stackoverflow
Solution 5 - node.jsbabcaView Answer on Stackoverflow
Solution 6 - node.jszangwView Answer on Stackoverflow