VSCode插件开发入门:Hello World

发布时间 - 2025-12-16 00:00:00    点击率:
VSCode插件开发从“Hello World”起步很简单,只需用yo code脚手架生成TypeScript模板,配置package.json的activationEvents、main和commands字段,编写命令逻辑并调试运行即可。

开发一个 VSCode 插件,从“Hello World”开始并不难,关键是理解插件的基本结构和激活时机。你不需要写一堆配置或打包脚本,VSCode 官方的 yo code 脚手架能快速生成标准模板,剩下的就是改几行代码、注册一个命令、触发一次弹窗。

创建插件项目

确保已安装 Node.js(v16+)和 Yeoman:

  • 运行 npm install -g yo generator-code
  • 执行 yo code,选择 “New Extension (TypeScript)”
  • 按提示填写插件名(如 hello-world-sample)、描述、ID 等信息

完成后会生成一个含 src/extension.tspackage.json 和调试配置的完整项目。

理解 package.json 中的关键字段

这是插件的“身份证”,VSCode 靠它识别功能和权限:

  • "activationEvents":定义插件何时被加载,比如 "onCommand:hello-world.helloWorld" 表示只在用户执行该命令时激活(推荐,提升启动性能)
  • "main":指向编译后的入口文件(默认是 ./out/extension.js
  • "contributes.commands":声明插件提供的命令,必须与代码中注册的 ID 一致

别漏掉 engines.vscode 字段,建议设为 =1.80.0" 保证兼容性。

编写核心逻辑(extension.ts)

打开 src/extension.ts,修改 activate 函数即可:

  • vscode.commands.registerCommand 注册一个命令,ID 必须和 package.json 里声明的一致
  • 回调函数中调用 vscode.window.showInformationMessage 弹出 “Hello World”
  • TypeScript 类型已自动导入,不用手动补全

示例片段:

export function activate(context: vscode.ExtensionContext) {
  let disposable = vscode.commands.registerCommand('hello-world.helloWorld', () => {
    vscode.window.showInformationMessage('Hello World from hello-world-sample!');
  });
  context.subscriptions.push(disposable);
}

运行与调试

F5 启动插件调试环境——VSCode 会打开一个新窗口(Extension Development Host),在里面按 Ctrl+Shift+P(Win/Linux)或 Cmd+Shift+P(Mac),输入 “Hello World”,选择对应命令即可看到弹窗。

修改代码后保存,调试窗口会自动热重载(部分变更仍需重启)。想装到主 VSCode 里?执行 npm run package 生成 .vsix 文件,然后通过 “Extensions → … → Install from VSIX” 安装。

基本上就这些。没有复杂构建、不涉及 UI 渲染、也不用处理进程通信——真正的 Hello World 级起步。后续再加状态管理、Webview 或设置项,都是在这个骨架上延展。


# linux  # vscode  # js  # node.js  # json  # node  # typescript  # npm  # mac  # ai  # win  #  


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  MySQL查询结果复制到新表的方法(更新、插入)  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  如何基于云服务器快速搭建网站及云盘系统?  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  网站制作大概多少钱一个,做一个平台网站大概多少钱?  黑客如何利用漏洞与弱口令入侵网站服务器?  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  制作企业网站建设方案,怎样建设一个公司网站?  如何彻底卸载建站之星软件?  linux top下的 minerd 木马清除方法  Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  如何用wdcp快速搭建高效网站?  原生JS获取元素集合的子元素宽度实例  网站制作企业,网站的banner和导航栏是指什么?  Laravel怎么使用Intervention Image库处理图片上传和缩放  Laravel如何从数据库删除数据_Laravel destroy和delete方法区别  b2c电商网站制作流程,b2c水平综合的电商平台?  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)  济南网站建设制作公司,室内设计网站一般都有哪些功能?  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  佛山网站制作系统,佛山企业变更地址网上办理步骤?  iOS中将个别页面强制横屏其他页面竖屏  如何快速建站并高效导出源代码?  高防服务器如何保障网站安全无虞?  如何在阿里云香港服务器快速搭建网站?  如何在宝塔面板中创建新站点?  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  js实现获取鼠标当前的位置  Laravel用户密码怎么加密_Laravel Hash门面使用教程  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】  如何基于PHP生成高效IDC网络公司建站源码?  如何为不同团队 ID 动态生成多个独立按钮  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  EditPlus 正则表达式 实战(3)  Python图片处理进阶教程_Pillow滤镜与图像增强  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  Laravel如何实现数据库事务?(DB Facade示例)  微信小程序 input输入框控件详解及实例(多种示例)  HTML 中动态设置元素 name 属性的正确语法详解  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  Laravel怎么判断请求类型_Laravel Request isMethod用法  Linux安全能力提升路径_长期防护思维说明【指导】  七夕网站制作视频,七夕大促活动怎么报名?  中山网站推广排名,中山信息港登录入口?  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)