我有一个包含3个子文件夹(客户端,服务器,资产)的文件夹(项目).每个子文件夹都有一个不同的命令来启动和处理我需要启动3个应用程序的项目.这是文件夹布局和我用来启动每个子项目的命令:
- 项目
- 客户(离子服务)
- 服务器(节点索引)
- 资产(http-server -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'",
}
Run Code Online (Sandbox Code Playgroud)
Tho*_*ber 49
您可以使用"并发"来完成此任务.所以你要创建一个类似于以下内容的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"
}
...
Run Code Online (Sandbox Code Playgroud)
注意:这将同时启动所有三个进程,这意味着您将获得所有三个进程的混合输出(如已提到的topheman)
问题是您的三个脚本都是类似服务器启动的脚本任务,这意味着它们不像运行 10 秒并停止进程的构建任务(例如)。
对于它们中的每一个,您启动它们,并且该过程无限期地继续。
你可以发动所有的人都在守护进程的方式与类似forever,但在你的情况,你是在开发模式(所以你希望所有的日志,和你不希望错误从服务器的NodeJS混合与离子之一。 ...)。
如果您不介意混合日志:https : //www.npmjs.com/package/forever(我认为这与 parallelshell 几乎相同......)
回答确实很晚,但是您获得了内置模式--prefix
示例:
-package.json
-/dist/ssr/package.json
Run Code Online (Sandbox Code Playgroud)
# package.json in root
npm run start --prefix dist/ssr
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15932 次 |
| 最近记录: |