如何为VSCode创建和发布你自己的扩展

发布时间 - 2026-01-01 00:00:00    点击率:
需完成初始化项目、编写功能代码、本地调试、打包为.vsix文件及发布至Marketplace五步:先用yo code生成TypeScript项目;在extension.ts中注册命令并实现逻辑;通过Extension Development Host调试;用vsce package打包;最后用vsce publish发布。

如果您希望为 Visual Studio Code 开发并公开一个自定义扩展,则需要完成初始化项目、编写功能代码、打包以及发布到 Visual Studio Code Marketplace 等多个环节。以下是实现该目标的具体操作流程:

本文运行环境:MacBook Pro,macOS Sequoia。

一、安装必要工具与初始化项目

创建 VS Code 扩展依赖 Node.js 环境和 Yeoman 脚手架工具,用于快速生成标准项目结构。需确保已安装最新稳定版 Node.js,并通过 npm 全局安装相关开发依赖。

1、在终端中执行 npm install -g yo generator-code 安装 Yeoman 与 VS Code 扩展生成器。

2、运行 yo code 启动向导,选择“New Extension (TypeScript)”类型。

3、按提示输入扩展名称、标识符(id)、描述、作者等元信息,生成完整 TypeScript 项目目录。

二、编写核心功能逻辑

扩展的核心行为由 extension.ts 文件中的 activate 函数定义,它在扩展被启用时执行。所有命令注册、事件监听和 UI 注入均在此处完成,是功能实现的主入口点。

1、打开 src/extension.ts,定位到 activate 函数内部。

2、调用 vscode.commands.registerCommand 注册一个新命令,例如 'extension.helloWorld'。

3、在对应命令回调中使用 vscode.window.showInformationMessage 弹出测试提示,验证基础功能可运行。

三、本地调试与测试

VS Code 提供内置的 Extension Development Host 环境,允许在隔离窗口中加载未发布的扩展,便于实时验证行为是否符合预期,避免影响主编辑器工作流。

1、按下 Cmd+Shift+P(macOS)打开命令面板,输入并选择 “Developer: Toggle Developer Tools” 查看控制台输出。

2、点击侧边栏的“运行和调试”图标,选择配置为 “Extension Development Host”,然后点击绿色三角形启动调试会话。

3、在新开的窗口中按下 Cmd+Shift+P,输入刚注册的命令名并执行,确认弹窗正常出现。

四、打包为 .vsix 发布文件

VS Code Marketplace 接收的是经过签名和压缩的 .vsix 格式文件,该文件由 vsce 工具生成,包含扩展源码、package.json 清单及资源文件。

1、在项目根目录执行 npm install -g vsce 安装发布工具。

2、运行 vsce package 命令,生成当前版本的 .vsix 文件(如 my-extension-0.0.1.vsix)。

3、检查生成文件是否包含有效的 package.json、icon 图标、README.md 及 license 文件,缺失将导致 Marketplace 审核失败。

五、发布至 Visual Studio Code Marketplace

发布前需注册 Microsoft Partner Center 账户并创建个人访问令牌(PAT),该令牌用于 vsce 登录并提交扩展包,是唯一身份凭证。

1、访问 https://partner.microsoft.com/en-us/dashboard/commercial-marketplace/overview 注册并完成开发者资料认证。

2、在“Certificates & secrets”页面创建一个新的 PAT,勾选 “Marketplace::Publish” 权限,复制生成的令牌值。

3、在终端执行 vsce login YourPublisherName,粘贴令牌完成登录,随后运行 vsce publish 提交扩展。


# vscode  # js  # node.js  # json  # node  # typescript  # npm  # macbook  # 工具  # mac  # 标识符 


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


相关推荐: 消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  简单实现Android文件上传  使用spring连接及操作mongodb3.0实例  微信小程序 require机制详解及实例代码  php打包exe后无法访问网络共享_共享权限设置方法【教程】  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  深入理解Android中的xmlns:tools属性  米侠浏览器网页背景异常怎么办 米侠显示修复  如何基于云服务器快速搭建网站及云盘系统?  Laravel如何实现API版本控制_Laravel版本化API设计方案  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  googleplay官方入口在哪里_Google Play官方商店快速入口指南  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  创业网站制作流程,创业网站可靠吗?  Laravel如何实现API资源集合?(Resource Collection教程)  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  如何在局域网内绑定自建网站域名?  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)  大型企业网站制作流程,做网站需要注册公司吗?  Python自动化办公教程_ExcelWordPDF批量处理案例  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  高端云建站费用究竟需要多少预算?  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言  黑客入侵网站服务器的常见手法有哪些?  Laravel中的Facade(门面)到底是什么原理  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  用yum安装MySQLdb模块的步骤方法  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  如何登录建站主机?访问步骤全解析  网站制作企业,网站的banner和导航栏是指什么?  Android GridView 滑动条设置一直显示状态(推荐)  长沙做网站要多少钱,长沙国安网络怎么样?  如何在Windows虚拟主机上快速搭建网站?  Python制作简易注册登录系统  简历在线制作网站免费版,如何创建个人简历?  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  如何在腾讯云服务器快速搭建个人网站?  JavaScript中的标签模板是什么_它如何扩展字符串功能  如何在自有机房高效搭建专业网站?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  如何在云主机快速搭建网站站点?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  HTML 中动态设置元素 name 属性的正确语法详解