VS Code 插件的开发及发布指南

本文介绍了如何开发和发布VS Code插件,详细阐述了从创建项目模板、配置package.json、使用API,到调试、打包和发布的过程。通过VS Code的API,开发者可以实现各种功能,如命令、智能提示等。VS Code插件开发推荐使用TypeScript,并通过vsce工具进行打包和发布。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tip:有问题或者需要大厂内推的+我脉脉哦:丛培森 ٩( ‘ω’ )و


在利用公司的框架进行业务开发的时候,发现频繁的 C/V 操作很影响开发体验,同时这些 C/V 的代码大多又和业务逻辑关系不大。而利用插件则可以很好的解决问题,有效提高开发效率。对此研究了下如何开发 VS Code 插件,并为团队开发发布了一款提供智能提示、自动补全等功能的 IDE 插件,写下这篇文章来给大家分享一下如何去开发发布一款 VS Code 插件。

简介

VS Code

简单谈下大家都熟知的 VS Code,它是微软推出的轻量级编辑器,本身是基于当下热门的同样由微软开发的 TypeScript,同时又基于 Electron 开发。尤其对 TypeScript、JavaScript 还有 Node.js 开发提供了强大的支持。内部集成了包管理器、终端、Git 版本管理、代码 diff 等功能。

实际上能让 VS Code 称得上是一个万能的 IDE 正是由于它庞大的扩展生态。对于我们前端开发者来说,只要了解相关 API,VS Code 扩展的开发基本没有门槛。

VS Code

VS Code 扩展

VS Code has a very rich extensibility model and there are many ways to extend the tool. However, we do not provide direct access to the underlying UI DOM to extension writers. With VS Code, we’re continually trying to optimize use of the underlying web technologies to deliver an always available, highly responsive editor and we will continue to tune our use of the DOM as these technologies and our product evolve.

VS Code 提供了丰富度扩展能力模型,但是不允许直接访问底层 UI DOM,也就是说很难通过插件去改变 IDE 外观,这是因为 UI DOM 这一层可能会随着 VS Code 优化频繁改动,为了防止这部分优化受限于插件依赖,干脆就把 UI 定制能力限制起来。除此之外,配合 VS Code 我们提供的 API,我们可以实现各种各样强大的功能:主题/图标定制、智能提示、自动补全、悬停提示、语法高亮、引用跳转等等,甚至可以 DIY WebView…

虽然不允许直接访问 DOM,但是提供了内置的 UI 组件比如智能提示框。出于性能、兼容以及 IDE 本身的稳定性来考虑,插件在独立进程 extension host process 中运行。所以即便是插件崩溃了也不会影响 VS Code 的正常运行,并且插件隔离不会影响 VS Code 的启动时间。

开发

起步

VS Code 为我们开发插件提供了方便的脚手架
除了 Git 和 Node.js 以外,还需要要安装 YeomanVS Code Extension Generator 两个工具
npm install -g yo generator-code

如果插件项目比较大的话,更推荐使用 TypeScript 来进行开发,也是微软推荐的开发方式
输入 yo code 命令输入配置来生成项目模板

yo

配置项包括插件名称、描述、关键词等等,以及是否创建 Git 仓库,选择包管理器等

确认后脚手架会帮我创建完整的开发目录
内部还包含了一个 Hello World 的小 demo

├── .vscode                     // 扩展配置
│   ├── launch.json
│   ├── settings.json
│   └── tasks.json
├── .vscodeignore               // 发布忽略配置
├── .gitignore                  // Git忽略配置
├── README.md
├── src                         // 主入口文件
│   └── extension.ts/js
├── test
│   ├── extension.test.ts/js
│   └── index.ts/js
├── node_modules
│   ├── vscode
│   └── typescript
├── out                         // ts编译后输出目录
│   ├── src
│   |   ├── extension.js
│   |   └── extension.js.map
│   └── test
│       ├── extension.test.js
│       ├── extension.test.js.map
│       ├── index.js
│       └── index.js.map
├── package.json                // 清单文件
├── tsconfig.json               // ts配置文件
├── typings                     // ts类型定义目录
│   ├── node.d.ts
│   └── vscode-typings.d.ts
└── vsc-extension-quickstart.md

其中我们主要关注两个核心文件
入口文件 extension.js/ts 与配置文件 package.json

package.json

p

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值