问题描述
我正在基于helloWorld tutorial构建我的第一个VS Code扩展。
首次运行yo code
时,它将检测到最新版本与代码版本并填充package.json
:
{
"engines": {
"vscode": "^1.47.0"
}
}
根据有效实施版本检查的official documentation。
但是我发现非常可疑的是,最简单的示例根本没有复杂的api,将需要最新的vs代码版本。
我正在寻找一个源(或工具)来检查我在扩展程序中使用的api方法的实际版本要求,因此能够定义所需的实际引擎。
为了说明,这些是我使用的一些方法。理想情况下,我会找出每个版本的版本要求。
vscode.commands.executeCommand('editor.action.revealDeFinition') // 1.8.0
vscode.commands.executeCommand('workbench.action.acceptSelectedQuickOpenItem') // 1.43.0
vscode.window.show@R_267_4045@ionMessage() // 1.18.0
// therefore I need ^1.43.0
PS:我是否考虑得太多了,可以假设每个人都定期更新代码?
解决方法
通常的方法是使用当前拥有的vscode版本开发扩展程序。这也是扩展的最低版本。这样一来,可以确保您的扩展程序不会与旧版本一起使用(即使在某些情况下也可以使用)。
然后它将与任何将来的vscode版本兼容(除非以不兼容的方式删除或更改了API)。回滚到较早的vscode版本以对其进行扩展测试是非常棘手的,因此您所要做的就是使其与当前版本一起正常工作。
使用新的vscode版本的新功能后,便会增加扩展的最低版本。