0

0

如何从零开始创建并发布你自己的VSCode插件

P粉986688829

P粉986688829

发布时间:2025-12-22 13:24:09

|

736人浏览过

|

来源于php中文网

原创

从零创建发布VS Code插件的关键流程是:初始化项目→编写核心逻辑→本地调试→打包→发布到Marketplace;用yo code生成脚手架,实现Hello World命令验证闭环,F5调试,vsce package打包为.vsix,vsce publish发布。

如何从零开始创建并发布你自己的vscode插件

从零开始创建并发布一个 VS Code 插件并不难,关键是理清流程:初始化项目 → 编写核心逻辑 → 本地调试 → 打包 → 发布到 Marketplace。下面分步说清楚怎么做,不绕弯、不堆术语。

用 yo code 快速生成插件脚手架

VS Code 官方推荐用 yo code(Yeoman 生成器)来初始化项目,它会自动配好 package.json、extension.ts、激活逻辑等基础结构。

  • 先全局安装依赖:npm install -g yo generator-code
  • 运行 yo code,按提示选择「New Extension (TypeScript)」
  • 填入插件名、ID、描述等信息,几秒就生成完整项目目录

生成的代码里,extension.ts 是主入口,activate 函数会在插件被触发时执行,deactivate 用于清理资源(可选)。

写一个能跑起来的小功能

别一上来就想做复杂插件。先实现一个“点击命令弹出 Hello World”的最小闭环,验证流程是否通。

  • package.jsoncontributes.commands 里注册一条命令,比如 helloWorld.sayHello
  • extension.tsactivate 中用 vscode.commands.registerCommand 绑定该命令到一个函数
  • 函数里调用 vscode.window.showInformationMessage('Hello from my plugin!')

保存后按 Ctrl+Shift+P(Win/Linux)或 Cmd+Shift+P(Mac),输入命令名就能触发——这是你插件的第一个“心跳”。

本地调试和打包

VS Code 自带调试支持,不用额外配置就能边改边试。

Gridster.js多列网格式拖动布局插件
Gridster.js多列网格式拖动布局插件

网页中拖动 DIV 是很常见的操作,今天就分享给大家一个 jQuery 多列网格拖动布局插件,和其它的插件不太一样的地方在于你处理拖放的元素支持不同大小,并且支持多列的网格布局,它们会自动的根据位置自己排序和调整。非常适合你开发具有创意的应用。这个插件可以帮助你将任何的 HTML 元素转换为网格组件

下载
  • 打开插件文件夹,在 VS Code 里按 F5 启动 Extension Development Host 窗口
  • 在这个新窗口里按 Ctrl+Shift+P 输入你的命令,看是否生效
  • 确认没问题后,终端执行 npm install -g vsce(VS Code Extension Publisher 工具
  • 运行 vsce package,生成一个 .vsix 文件——这就是可安装的插件包

双击 .vsix 文件,或在 VS Code 的「扩展」视图中点击右上角 … → “从 VSIX 安装”,就能本地测试安装效果。

发布到 Visual Studio Code Marketplace

发布前需准备两件事:微软账号 + 插件 ID 唯一性检查。

  • 访问 marketplace.visualstudio.com/manage,用 Microsoft 账号登录
  • package.json 中确保 publisher 字段是你在 Marketplace 注册的发布者名称(不是邮箱)
  • 插件 nameid(由 publisher.name 拼成)不能与已有插件重复,vsce publish 会自动校验
  • 运行 vsce login 登录,再执行 vsce publish

成功后几分钟内,你的插件就会出现在 Marketplace 上,别人搜名字就能找到并安装。

基本上就这些。写插件的核心不是技术多高深,而是把“用户想点哪里、看到什么、得到什么反馈”想清楚。从一个小命令起步,跑通全流程,后面加功能、改 UI、读文档、接 API 都顺了。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

418

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

535

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

311

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

77

2025.09.10

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

395

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

575

2023.08.10

vscode
vscode

VS Code(Visual Studio Code)是一款免费、开源的跨平台代码编辑器,由微软开发和维护。它被广泛用于软件开发和编程,支持多种编程语言和框架。VS Code 同时提供了丰富的功能和扩展性,使开发者可以高效地编写、编辑和调试代码。

592

2023.06.30

vscode怎么运行代码
vscode怎么运行代码

vscode是一个运行于MacOS X、Windows和Linux之上的,针对于编写现代Web和云应用的跨平台源代码编辑器;vscode免费而且功能强大,对JavaScript和NodeJS的支持非常好,自带很多功能,例如代码格式化,代码智能提示补全、Emmet插件等。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

223

2023.07.21

Python 自然语言处理(NLP)基础与实战
Python 自然语言处理(NLP)基础与实战

本专题系统讲解 Python 在自然语言处理(NLP)领域的基础方法与实战应用,涵盖文本预处理(分词、去停用词)、词性标注、命名实体识别、关键词提取、情感分析,以及常用 NLP 库(NLTK、spaCy)的核心用法。通过真实文本案例,帮助学习者掌握 使用 Python 进行文本分析与语言数据处理的完整流程,适用于内容分析、舆情监测与智能文本应用场景。

22

2026.01.27

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.9万人学习

Git 教程
Git 教程

共21课时 | 3.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号