致新人:如何编写自己的第一个VSCode插件,以使用@vscode/vsce来做打包工具为例

摘要

下面提供一个详细且用户体验良好的VSCode插件开发教程,示范如何创建一个插件,通过命令面板触发跳转到jobleap.cn网站,并使用@vscode/vsce做打包工具的完整流程。


1. 环境准备

  • 安装Node.js,确保版本满足VSCode插件开发需求。

  • 全局安装开发和打包工具:

    bash 复制代码
    npm install -g yo generator-code @vscode/vsce

2. 创建插件项目

  • 使用 Yeoman 脚手架创建项目骨架:

    bash 复制代码
    yo code
  • 选择 New Extension (TypeScript),并填写插件名称、描述、作者等基本信息。

  • 进入项目目录后安装依赖:

    bash 复制代码
    cd your-extension-name
    npm install

3. 编写插件代码实现跳转功能

编辑src/extension.ts,创建可通过命令触发打开jobleap.cn的网址功能:

typescript 复制代码
import * as vscode from 'vscode';

export function activate(context: vscode.ExtensionContext) {
    let disposable = vscode.commands.registerCommand('extension.openJobleap', () => {
        vscode.env.openExternal(vscode.Uri.parse('https://jobleap.cn'));
    });
    context.subscriptions.push(disposable);
}

export function deactivate() {}

4. 配置插件的package.json

确保命令被正确声明,且定义VSCode版本兼容范围:

json 复制代码
{
  "name": "jobleapjump",
  "displayName": "Jobleap Jump",
  "description": "跳转到Jobleap网站的VSCode插件示例",
  "version": "1.0.0",
  "engines": {
    "vscode": "^1.99.0"
  },
  "activationEvents": [
    "onCommand:extension.openJobleap"
  ],
  "main": "./out/extension.js",
  "contributes": {
    "commands": [
      {
        "command": "extension.openJobleap",
        "title": "打开 Jobleap 网站"
      }
    ]
  }
}

5. 本地调试插件

  • 按F5启动调试,会弹出新的VSCode窗口加载插件。
  • 通过 Ctrl+Shift+P 打开命令面板,搜索"openJobleap"命令,触发后默认浏览器打开 jobleap.cn

6. 打包插件

  • 确保全局安装了vsce

  • 在项目根目录执行:

    bash 复制代码
    vsce package
  • 生成后缀为.vsix的插件包文件,可用于手动安装或上传发布。

7. 发布插件(可选)

  • 先申请并创建publisher,登录:

    bash 复制代码
    vsce login <publisherName>
  • 发布插件:

    bash 复制代码
    vsce publish

以上流程涵盖了从创建、开发、调试、打包到发布插件的全套步骤,示例插件体验点在于通过VSCode命令面板快速跳转网站,简单直观符合良好用户体验标准,且保证了插件对当前VSCode版本(1.99.3及以上)的兼容性。

相关推荐
灵魂学者7 小时前
Vue3.x —— ref 的使用
前端·javascript·vue.js
梦6507 小时前
VUE树形菜单组件如何实现展开/收起、全选/取消功能
前端·javascript·vue.js
我命由我123457 小时前
微信小程序 - 避免在 data 初始化中引用全局变量
开发语言·前端·javascript·微信小程序·小程序·前端框架·js
可爱又迷人的反派角色“yang”7 小时前
Mysql数据库(二)
运维·服务器·前端·数据库·mysql·nginx·云计算
低保和光头哪个先来7 小时前
基于 Vue3 + Electron 的离线图片缓存方案
前端·javascript·electron
天天向上10247 小时前
Vue 配置一次打包执行多个命令,并将分别输出到不同的文件夹
前端·javascript·vue.js
BD_Marathon7 小时前
【JavaWeb】HTML——超链接标签
前端·html
彭于晏爱编程7 小时前
🐻 Zustand 使用指南:从 0 到精通的最快路线
前端
장숙혜7 小时前
Vue DevTools 速通-掌握开发调试器
前端·javascript·vue.js
谢尔登8 小时前
为什么React 17开始无需在组件中引入React了?
前端·react.js·前端框架