功能问题:如何开发一个自己的 VS Code 插件?

大家好,我是大澈!

本文约1100+字,整篇阅读大约需要3分钟。

感谢关注微信公众号:"程序员大澈",免费领取"面试礼包"一份,然后免费加入问答群,从此让解决问题的你不再孤单!

1. 需求分析

不知道大家有没有这样一个疑问,就是我们每天都在用的 VS Code 插件,是怎么搞出来的?

如果我们自己也能搞一个出来,无论面试,还是个人提升,收益绝对是巨大的。

又或者,当我们用着插件商店里的某个插件不爽时,可以一怒之下,搞一个自己想要的功能插件。

当然,前提是你要知道该怎么搞。

所以,下面我们以一个小白的视角,一起来看看,如何开发一个属于自己的 VS Code插件吧!

2. 问题实现

从创建项目到打包发布,都做一个简单介绍,最后做小结。

2.1 安装依赖

先安装一下相关依赖工具。

bash 复制代码
# 安装插件脚手架
npm install -g yo generator-code

# 安装插件发布工具
npm install -g vsce

简单介绍一下,上面安装的这两个工具:

2.2 创建项目

输入以下命令,然后像创建Vue项目那样,填写所开发插件的信息,创建项目基本目录。

第一次创建项目可能有点慢,输入完命令后要耐心等待一会。

css 复制代码
yo code

项目基本目录结构如下:

2.3 编写代码

这里简单介绍两个最重要的文件,package.jsonextension.js

对于package.json,这个我们很熟悉,项目的配置文件,用来管理插件的信息、项目依赖等。

其中,最重要的配置就是下面红框这块,它的意思是注册一个 dache-vscode.helloWorld 的命令,并用命令名 Hello World 来触发。

对于 extension.js,它是项目所有代码的入口文件。

其中,下面红框这块,用来监听刚刚我们在 package.json 中注册的命令,当命令被触发时,执行内部回调。

2.4 调试运行

在 VSCode 中按下 F5 会进入调试状态,这时候会自动打开一个名为 扩展开发宿主 的新窗口。

再在新窗口中,按下 command + shift + pctrl + shift + p,在里面输入我们插件注册的命令名,按下回车就能触发回调。

插件回调执行效果如下:

2.5 打包发布

执行以下命令,打包生成 vsix 文件,这个 vsix 文件就是我们开发的插件啦。

如果执行打包命令报错,则在 REANME.md 文件中修改内容,把初始内容都删了就行。

最后,我们可以选择本地自己使用插件,也可以选择发布到插件商店。

如果本地自己使用,可以这样做:

如果发布到插件商店,可以登录 VS Code 插件商店,按提示填写相关信息后,进行发布。

发布传送门:https://marketplace.visualstudio.com/manage/createpublisher?managePageRedirect=true

2.6 小结

本文简单介绍了,如何一步步的开发一个自己的 VS Code 插件,并最终选择本地自己使用,或者发布到插件商店。

整个过程算是比较简单,但是真正制作一个可用的良心插件,还是不易的。

所以还是那句话,多尝试,少哔哔!

结语

建立这个平台的初衷:

  • 打造一个专注于前端功能问题的问答平台,让大家高效搜索处理同样问题。
  • 遇到有共鸣的问题,与众多同行朋友们一起讨论,一起沉淀成长。
  • 平台现拥有功能问题、技术资讯、实用干货3个专栏内容。

感谢关注微信公众号:"程序员大澈",免费领取"面试礼包"一份,然后免费加入问答群,从此让解决问题的你不再孤单!

相关推荐
sunbyte12 分钟前
50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Expanding Cards (展开式卡片)
javascript·vue.js·ecmascript
肠胃炎15 分钟前
React Contxt详解
javascript·react.js·ecmascript
xx240626 分钟前
React Native简介
javascript·react native·react.js
重生之后端学习1 小时前
02-前端Web开发(JS+Vue+Ajax)
java·开发语言·前端·javascript·vue.js
布鲁斯的快乐小屋1 小时前
axios的基本使用
javascript·ajax
黄鹂绿柳4 小时前
Vue+Vite学习笔记
vue.js·笔记·学习
来自星星的坤4 小时前
【Vue 3 + Vue Router 4】如何正确重置路由实例(resetRouter)——避免“VueRouter is not defined”错误
前端·javascript·vue.js
香蕉可乐荷包蛋8 小时前
浅入ES5、ES6(ES2015)、ES2023(ES14)版本对比,及使用建议---ES6就够用(个人觉得)
前端·javascript·es6
未来之窗软件服务9 小时前
资源管理器必要性———仙盟创梦IDE
前端·javascript·ide·仙盟创梦ide
西哥写代码10 小时前
基于cornerstone3D的dicom影像浏览器 第十八章 自定义序列自动播放条
前端·javascript·vue