打开项目时,是否可以让VS Code运行多个命令并启动一个或多个应用程序?
我的理想情况是:
- 在VS Code中打开项目
- 运行特定的ngrok命令
- 启动Mongo
- 启动一个NPM脚本
目标是在VS Code中打开项目后立即开始工作,而不是运行多个设置步骤。
打开项目时,是否可以让VS Code运行多个命令并启动一个或多个应用程序?
我的理想情况是:
目标是在VS Code中打开项目后立即开始工作,而不是运行多个设置步骤。
{
"version": "2.0.0",
"tasks": [
{
"label": "Launch app", // Name of task
"type": "shell",
"command": "npm start", // Enter your command here
"group": "none",
"presentation": {
"reveal": "always",
"panel": "new"
},
"runOptions": {
"runOn": "folderOpen"
}
}
]
}
接下来需要启用自动任务:
> Tasks: Manage Automatic Tasks in Folder
在该文件夹中下次打开 VS Code 时将执行您的任务。
2019年8月12日更新:
@Andrew Wolfe在评论中提出了一个很好的观点,询问工作区激活事件。随着我在未来项目中实现类似配置,我可能会朝这个方向发展。
原始答案:
最终使用了@HansPassant的解决方案:https://code.visualstudio.com/docs/editor/tasks#_custom-tasks
所以,我的.vscode/tasks.json
文件类似于以下内容:
{
"version": "2.0.0",
"tasks": [
{
"label": "Launch Ngrok",
"type": "shell",
"command": "ngrok http -subdomain=<SUBDOMAIN> <PORT>",
"windows": {
"command": "ngrok http -subdomain=<SUBDOMAIN> <PORT>"
},
"group": "none",
"presentation": {
"reveal": "always",
"panel": "new"
}
},
{
"label": "Launch App",
"type": "shell",
"command": "npm start",
"windows": {
"command": "npm start"
},
"group": "none",
"presentation": {
"reveal": "always",
"panel": "new"
}
}
]
}
我还将我的项目命名为工作区,这样我在循环浏览打开的项目时可以快速识别它。
对于每个项目,在.vscode
文件夹中添加了类似的tasks.json
文件,然后只需使用命令面板启动每个任务,每次想要处理某些事情时就可以启动它们。
每个应用程序都有不同的依赖要求,需要同时运行一些依赖项,有些是通过本地节点启动的,有些是在远程服务器上启动的,有些需要始终运行TypeScript,然后通过Rsync到远程开发服务器(并将Rsync任务绑定到cmd+option+s以进行快速更新,更多信息请参见此处)。
这个解决方案使得所有以上操作都变得轻松,并且不必每次记住每个项目的魔术咒语来启动它。
workspaceContains
可能是最适合的选项。