是否可以使用npm在多个子文件夹中运行脚本?

是否可以使用npm在多个子文件夹中运行脚本?,npm,Npm,我有一个包含3个子文件夹(客户端、服务器、资源)的文件夹(项目)。每个子文件夹都有一个不同的命令来启动和处理我需要启动3个应用程序的项目。这是文件夹布局和用于启动每个子项目的命令: 计划 客户(爱奥尼亚服务) 服务器(节点索引) 资产(http服务器-p 8082) 目前,我转到三个文件夹中的每一个,并启动每个应用程序。为了使流程更加标准,每个子项目都有一个带有开始脚本的package.json,因此我只需cd子文件夹和&npm start 我的问题:是否可以在父文件夹上使用npm(即,

我有一个包含3个子文件夹(客户端、服务器、资源)的文件夹(项目)。每个子文件夹都有一个不同的命令来启动和处理我需要启动3个应用程序的项目。这是文件夹布局和用于启动每个子项目的命令:

  • 计划
    • 客户(爱奥尼亚服务)
    • 服务器(节点索引)
    • 资产(http服务器-p 8082)
目前,我转到三个文件夹中的每一个,并启动每个应用程序。为了使流程更加标准,每个子项目都有一个带有开始脚本的package.json,因此我只需
cd子文件夹和&npm start

我的问题:是否可以在父文件夹上使用npm(即,在那里编写
package.json
),这样我就可以运行以下命令并具有相同(或类似)的效果

项目>npm开始

我尝试过使用软件包
parallelshell
,但它不起作用(可能是因为
cd

"scripts": {
  "start": "parallelshell 'cd app && ionic serve' 'cd api && npm start' 'cd assets && npm start'",
}

问题是您的三个脚本都像脚本任务一样启动服务器,这意味着它们不像运行10秒并停止进程的构建任务(例如)

对于其中的每一个,您将启动它们,该过程将不确定地继续

您可以通过
永久
之类的守护进程方式启动所有日志,但您处于开发模式(因此您需要所有日志,并且您不希望节点服务器的错误与离子服务器的错误混合在一起…)

如果您不介意混合日志:(我假设这与parallelshell的功能几乎相同…

您可以使用“并发”来完成此操作。因此,您将创建一个package.json,它看起来如下所示:

...
"scripts": {
  "client": "cd client && npm start",
  "server": "cd server && npm start",
  "assets": "cd assets && ionic serve",
  "start": "concurrently \"npm run client\" \"npm run server\" \"npm run assets\" ",
},
...
"devDependencies": {
  "concurrently": "^1.0.0"
}
...

注意:这将同时启动所有三个进程,这意味着您将获得所有三个进程的混合输出(如前面提到的topheman)

回答这个问题真的很晚了,但您得到了内置选项
--prefix
, 例如:


谢谢,有点修正了
“start”:“concurrent
->
“start”:“concurrent
作为一个迟来的注释,但另一个选择是,我想提到
npm run all
()。我根本没有同时使用
,很遗憾,我既不能给出意见也不能给出建议。也许其他人可以给我们一些启发?ps:在纱线中使用--cwd
-package.json
-/dist/ssr/package.json
# package.json in root
npm run start --prefix dist/ssr