【问题标题】:develop and debug multiple VSCode extensions at once一次开发和调试多个 VSCode 扩展
【发布时间】:2019-05-10 08:01:08
【问题描述】:

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

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

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

2) 将扩展移动到 ~/.vscode/extensions 文件夹中

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

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

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

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

从 VSCode 文档看来,--extensionDevelopmentPath“可能”以某种方式支持多条路径,但我还没有找到任何确凿的结论或示例以使其工作。

【问题讨论】:

  • 另外值得注意的是由于今天的新体验,如果您之前从扩展市场下载了自己的扩展,然后根据我的将本地版本复制到 ~/.vscode/extensions/ 文件夹中以上选项 #2 它将从市场重新下载扩展并删除您的开发版本,从而丢失您尚未提交/发布的任何工作更改!幸运的是,我能够在时间机器中调出我的开发版本!

标签: visual-studio-code vscode-extensions


【解决方案1】:

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

然后我会在工作扩展上调整您的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}"
]

【讨论】:

    猜你喜欢
    • 2021-12-08
    • 2017-08-31
    • 2020-01-17
    • 2019-10-19
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    • 2016-03-25
    • 2018-06-07
    相关资源
    最近更新 更多