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

Pet*_*unt 5 visual-studio-code vscode-extensions

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

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

这里的缺点是,在扩展发布或移动到 ~/.vscode/extensions 文件夹之前,这两个扩展不知道彼此的开发版本,这使得调试和快速添加相当困难。

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

这样做的缺点是窗口不断重新加载,有时很难知道主进程何时完全加载更新版本,而且它肯定不如开发一个扩展时的体验方便。

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

这使得调试和快速功能构建变得更容易,但违背了我所希望的一些原始模块化,所以我到目前为止还没有切换到这个。

我的问题是,除了我所知道的上述 3 个选项之外,人们是否还找到了更好的方法来完成此任务?我已经通过谷歌、论坛和 vscode 文档进行了相当多的梳理,寻找选项或其他遇到相同情况的人,但到目前为止还没有找到任何东西。

从 VSCode 文档来看,似乎--extensionDevelopmentPath“可能”以某种方式支持多个路径,但我还没有找到任何结论性的东西或示例来让它工作。

小智 1

我使用的一种方法是将“核心”扩展作为子模块拖入子目录中,例如.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...
}
Run Code Online (Sandbox Code Playgroud)

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

"args": [
   "--extensions-dir=${workspaceFolder}/.dependencies"
   "--extensionDevelopmentPath=${workspaceFolder}"
]
Run Code Online (Sandbox Code Playgroud)