前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航
  • React专栏

    • React组合式开发实战

      • 前端开发的四个时代
      • 企业管理系统的前世今生
      • 可视化页面搭建工具
      • 实战篇 01:开发前准备
      • 实战篇 02:项目脚手架
      • 实战篇 03:页面布局方案
      • 实战篇 04:权限管理机制
      • 实战篇 05:菜单匹配逻辑
      • 实战篇 06:消息通知设计
      • 实战篇 07:多语言支持
      • 继往开来:可视化页面搭建工具
    • React Hooks与Immutable实战

    • React SSR服务端渲染与同构实践

    • IM聊天系统前端开发实践

    • 微前端开发实战

    • React进阶实践

  • Vue专栏

  • 移动端专栏

  • Node专栏

  • 前端工程化专栏

  • 算法专栏

  • Typescript专栏

  • 其他专栏

完整面试题地址:
作者:程序员poetry
扫码关注作者公众号:「前端进阶之旅」 每天分享技术干货
前端进阶之旅公众号二维码

# 前言

这一章也是比较独立的,它是研发工具链的衍生,没有它并不会对工具链有影响但有它能够大幅度提高用户开发体验。

大部分的开发者是想打造一站式、沉浸式的研发体验,那么在前端开发中,使用到最多比较热门的软件开发工具有 Vscode,那么 Vscode 的插件开发也就顺理成章了。

它跟 CLI 的区别是,基于自定义的 webView 能够提供给研发一个可视化的操作界面,同时可以与开发过程绑定,最后插件开发比较简便,Vscode 天然支持 TypeScript,对前端开发者非常友好,所以在你的 CLI 工具完成之后,就可以着手准备插件开发,进一步提高用户体验了。

# 开发属于自己的插件

# 初始化模板

npm install -g yo generator-code
@前端进阶之旅: 代码已经复制到剪贴板

初始化完毕之后直接按 F5 进入调试开发模式

image.png

初始化完毕的代码目录结构如下所示:

├── .vscode
│   ├── launch.json     // 插件加载和调试的配置
│   └── tasks.json      // 配置 TypeScript 编译任务
├── .gitignore
├── README.md           // 插件文档
├── src
│   └── extension.ts    // 插件源代码
├── package.json        // 插件配置清单
├── tsconfig.json       // TypeScript 配置
@前端进阶之旅: 代码已经复制到剪贴板

# 集成 WebView

由于我们已经有一个 CLI 工具,而且提供非常多的功能,对 Vscode 插件来说,我们只是为了将功能作为可视化而已,所以不需要重头开始开发,直接使用 CLI 作为底层库来开发业务功能即可(这里就利用到了我们之前 CLI 暴露的方法,之前的设计没有直接使用 commander 调用方法,而是封装统一出口之后在提供给 commander 使用,就是为了应对这些问题)。

  1. package.json 激活事件 + 注册命令,这里选择任意事件激活,毕竟我们集成的事件比较多。
  "activationEvents": [
    "*"
  ],
  "contributes": {
    "commands": [
      {
        "category": "FECLI",
        "command": "FECLI.showCommands",
        "title": "显示所有操作"
      },
    ],
    "menus": {
      "explorer/context": [
          {
            "category": "FECLI",
            "command": "FECLI.overview",
            "title": "DEVOPS 首页"
          },
      ]
    }
  },
@前端进阶之旅: 代码已经复制到剪贴板
  1. 注册命令

修改 extension.ts

import * as vscode from 'vscode';
import { initialize as initCommands } from "./commands";
import { showOverviewPageOnActivation } from "./pages/overview";
import { initCommit } from "./commit";
import { initStatusBar } from './components/statusBar';

export function activate(context: vscode.ExtensionContext) {
	initCommands(context); // 注册命令
	showOverviewPageOnActivation(context); // 注
fe
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航
  • React专栏

    • React组合式开发实战

      • 前端开发的四个时代
      • 企业管理系统的前世今生
      • 可视化页面搭建工具
      • 实战篇 01:开发前准备
      • 实战篇 02:项目脚手架
      • 实战篇 03:页面布局方案
      • 实战篇 04:权限管理机制
      • 实战篇 05:菜单匹配逻辑
      • 实战篇 06:消息通知设计
      • 实战篇 07:多语言支持
      • 继往开来:可视化页面搭建工具
    • React Hooks与Immutable实战

    • React SSR服务端渲染与同构实践

    • IM聊天系统前端开发实践

    • 微前端开发实战

    • React进阶实践

  • Vue专栏

  • 移动端专栏

  • Node专栏

  • 前端工程化专栏

  • 算法专栏

  • Typescript专栏

  • 其他专栏