VSCode扩展开发:如何在扩展安装阶段运行代码及安装依赖
VSCode扩展安装阶段自定义逻辑实现位置说明
VSCode官方没有提供扩展纯安装阶段(用户点击安装到扩展未激活前)的执行钩子,所有安装相关的自定义逻辑都需要结合扩展激活生命周期和状态存储实现,具体代码放置位置如下:
1. 依赖自动安装逻辑
- 常规Node.js生产依赖不需要额外写安装逻辑,使用
vsce package打包扩展时会自动将package.json中dependencies下的依赖打进vsix安装包,用户安装扩展后可直接使用。 - 如果你需要安装动态依赖、系统级依赖等特殊依赖,需要将安装逻辑封装为独立函数,写在扩展的激活入口函数中。
2. 首次安装自定义代码运行逻辑
通过ExtensionContext提供的globalState存储首次运行标记,实现仅首次激活时执行自定义逻辑,代码示例如下:
// extension.ts / extension.js 是扩展的默认入口文件 import * as vscode from 'vscode'; async function installCustomDeps() { // 此处编写自定义依赖安装逻辑 } export async function activate(context: vscode.ExtensionContext) { // 读取首次运行标记,默认值为true const firstRunFlag = context.globalState.get('你的扩展ID.firstRun', true); if (firstRunFlag) { // 此处编写你的首次运行自定义逻辑,也可以调用依赖安装函数 await installCustomDeps(); // 执行完成后更新标记,后续扩展激活不会再触发这段逻辑 await context.globalState.update('你的扩展ID.firstRun', false); } // 其余扩展常规激活逻辑 }
- 如果需要用户安装完扩展后尽快触发上述逻辑,可以在
package.json中配置激活事件:
{ "activationEvents": ["onStartupFinished"] }
配置后扩展会在VSCode启动完成后自动激活,不需要等待用户触发扩展的其他交互事件。
内容的提问来源于stack exchange,提问作者Prasanna
相关产品推荐
相关产品推荐

