一次开发和调试多个VSCode扩展

时间:2018-12-09 00:39:33

标签: visual-studio-code vscode-extensions

我目前正在开发一些自定义VSCode扩展,并且希望有一个基于核心扩展的单独的可选扩展。目前,开发这些一致的方法有点麻烦,而且我目前知道以下选择:

1)使用单独的调试实例分别开发扩展

这里的缺点是,在将扩展发布或移动到〜/ .vscode / extensions文件夹之前,这两个扩展都不了解彼此的开发版本,因此调试和快速添加非常困难。

2)将扩展名移至〜/ .vscode / extensions文件夹

这样做的缺点是需要不断重新加载窗口,有时要知道主进程何时完全加载了更新版本可能很棘手,并且绝对不如开发一个扩展程序时方便

3)将两个扩展合并为一个扩展

这使调试和快速功能构建更加容易,但是与我希望的某些原始模块化背道而驰,所以到目前为止,我还没有切换到这一点。

我的问题是,除了我知道的上述三个选项之外,人们是否找到了更好的方法来实现这一目标?我已经在Google,论坛和vscode文档中进行了很多梳理,以寻找选项或其他遇到相同情况但尚未找到任何内容的人。

从VSCode文档看来,--extensionDevelopmentPath“可能”以某种方式支持多种路径,但是我还没有找到任何结论性的例子或实例来使它起作用。

1 个答案:

答案 0 :(得分:0)

我使用的一种方法是将'core'扩展作为子模块引入到子目录中,例如.dependencies。请记住从其目录中npm install扩展“核心”。

然后,我将在有效的扩展程序上调整您的package.json,以使用以下脚本:

"scripts": {
   ...truncated for brevity...
   "compile:core": "tsc -p .dependencies/{dep-folder}"
   "compile:me": "tsc -p ./"
   "compile": "npm run compile:core && npm run compile:me"
   ...truncated for brevity...
}

最后,将以下内容添加到您的launch.json中,它将覆盖VSCode的默认扩展名文件夹到您的.dependencies文件夹中。

"args": [
   "--extensions-dir=${workspaceFolder}/.dependencies"
   "--extensionDevelopmentPath=${workspaceFolder}"
]