如何让npm在不同的目录启动?

我通常cd到app目录,然后运行npm start

我的感觉是,应该有某种方法来运行带有路径参数的npm start。但是,NPM启动文档不包含这样的特性。

我自己尝试了,却发现npm start ./myapp不工作。有办法做到吗?

269869 次浏览

根据这个NPM问题清单,可以通过npm配置来完成一项工作

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

在windows下,scripts可以是{ start: "node ./%npm_package_config_path%" }

然后运行如下所示的命令行

npm start --foo:path=myapp

这一行代码应该可以工作:

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

对应doc .

在Command下面,project是一个包含package.json文件的文件夹

npm run --prefix project ${COMMAND}

也在工作。 在基于Docker的应用程序中非常有用

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

,内包。Json添加以下脚本

"scripts": {
"preinstall":"cd $(pwd)"
}
我从谷歌来到这里,所以它可能与其他人有关: 对于yarn,你可以使用:

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

下面的一行代码也可以:

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

注意,执行该命令后,当前目录将被更改为/path/to/your/app。保存工作目录:

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

我使用这个解决方案是因为当时我正在编辑的程序配置文件不支持指定命令行参数。