禁用从属扩展名以支持新的预览扩展时发生错误

时间:2019-01-26 09:19:18

标签: visual-studio-code vscode-extensions

我有一个Visual Studio Code Extension,它依赖于PowerShell extension。这是在这里完成的:

https://github.com/gep13/chocolatey-vscode/blob/develop/package.json#L136

已经指出,这在用户使用PowerShell Preview extension时引起问题。由于它会导致错误,我认为这是由于未满足依赖关系。

我的扩展名并不真正在乎它是PowerShell还是PowerShell Preview扩展。

我的扩展清单中是否有一种方法可以指定它可以是另一个,也可以是另一个?还是最好检查一下依赖项以支持PowerShell扩展的建议?

1 个答案:

答案 0 :(得分:2)

我认为没有办法在清单中强制执行“或/或”关系。

作为替代方案,您可以通过将ms-vscode.PowerShell放在extensionPack中来使其不是硬性要求。这样,安装扩展程序仍会同时安装它,但可以将其禁用甚至卸载。

然后您可以在扩展程序被激活时验证是否满足依赖关系:

if (vscode.extensions.getExtension("ms-vscode.PowerShell") === undefined && 
    vscode.extensions.getExtension("ms-vscode.PowerShell-Preview") == undefined) {
    vscode.window.showErrorMessage("PowerShell or PowerShell Preview extension required");
}