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.ts、package.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数据)


window.showInformationMessage('Hello World from hello-world-sample!');
});
context.subscriptions.push(disposable);
}