我有一个文件夹(一个项目),它有3个子文件夹(客户端、服务器、资产)。每个子文件夹都有不同的命令来启动和处理我需要启动的3个应用程序的项目。下面是我用来启动每个子项目的文件夹布局和命令:
- 投射
- 客户端(离子服务器)
- 服务器(节点索引)
- 资产(http-服务器-p 8082)
目前,我分别进入这三个文件夹并启动每个应用程序。为了使过程更加标准,每个子项目都有一个package.json和一个启动脚本,所以我只需要cd subfolder && npm start
。
**我的问题:**是否可以在父文件夹上使用npm(即在那里写一个package.json
),这样我就可以只运行下面的命令,并获得相同(或类似)的效果?
项目〉npm开始
我试过使用包parallelshell
,但它不工作(可能是因为cd
:
"scripts": {
"start": "parallelshell 'cd app && ionic serve' 'cd api && npm start' 'cd assets && npm start'",
}
3条答案
按热度按时间yftpprvb1#
你可以使用
concurrently
来完成这个任务,所以你可以创建一个package.json
,看起来像下面这样:注意:这将同时启动所有三个进程,这意味着您将得到所有三个进程的混合输出(如前面提到的@topheman)
bd1hkmkf2#
现在回答这个问题已经很晚了,但是您得到了内置选项
--prefix
,例如:第一个
soat7uwm3#
问题在于,所有三个脚本都是类似于服务器启动的脚本任务,这意味着它们不像(例如)运行10秒并停止进程的构建任务。
对于其中的每一个,您启动它们,该过程将无限期地继续。
您可以使用
forever
之类的命令以守护进程方式启动所有日志,但在您的示例中,您处于dev模式(因此您需要所有日志,您不希望来自nodejs服务器的错误与ionic服务器的错误混合...)。如果您不介意混合日志:https://www.npmjs.com/package/forever(我假设这与parallelshell的功能几乎相同...)