我有一个单体库,想要创建一个脚本来在本地启动特定的项目。该项目完全基于Node.js。
为了在本地进行开发,我需要按照以下顺序运行以下命令:
1. 启动docker镜像 - cd docker/dockerForTests - docker-compose up -d
2. 启动Web Auth服务器 - cd src/project/webAuthentication - setenvs projectAuthentication && npm start
3. 启动API - cd src/project/api - setenvs projectAPI && npm start
4. 启动Web客户端 - cd src/project/web - setenvs projectWeb && npm start
第一个命令可以正常工作,但我希望它像集成终端一样,在命令完成运行后挂起以等待输入。 其次,第二个任务无法工作,因为它不是Node命令。
我希望它能像常规的bash输入一样工作。
为了在本地进行开发,我需要按照以下顺序运行以下命令:
1. 启动docker镜像 - cd docker/dockerForTests - docker-compose up -d
2. 启动Web Auth服务器 - cd src/project/webAuthentication - setenvs projectAuthentication && npm start
3. 启动API - cd src/project/api - setenvs projectAPI && npm start
4. 启动Web客户端 - cd src/project/web - setenvs projectWeb && npm start
我通常会在VSCode中使用新的终端窗口来启动每个部分,以方便使用。
为了自动化此过程,我了解到了VSCode任务。
虽然看起来它们是为“构建”或“监视”任务而设计的,但我认为我可以修改其行为以便代替我运行上述命令。
这是我的尝试:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"runner": "terminal",
"version": "2.0.0",
"tasks": [
{
"label": "Start Docker",
"dependsOrder": "sequence",
"type": "shell",
"command": "cd docker/dockerForTests && docker-compose up -d",
},
{
"label": "Start Web Auth",
"dependsOrder": "sequence",
"type": "process",
"command": "cd src/project/webAuthentication && setenvs projectAuthentiction && npm start"
},
{
"label": "Start Up Local Development Environment",
"presentation": {
"echo": true,
"reveal": "always",
"focus": true,
"panel": "new",
"showReuseMessage": false,
"clear": true
},
"dependsOn": [
"Start Docker",
"Start Web Auth"
],
"problemMatcher": []
}
]
}
第一个命令可以正常工作,但我希望它像集成终端一样,在命令完成运行后挂起以等待输入。 其次,第二个任务无法工作,因为它不是Node命令。
我希望它能像常规的bash输入一样工作。
我该如何自动化上述流程?这有可能吗?