本篇博客通过vscode插件“Hexo3StepHelper”一键发布
偶尔杀鸡用用牛刀也许不算坏
背景
在以Hexo为框架的个人博客上对文章进行修改后,需要通过三条hexo指令将修改更新到网络上:
1 | $ hexo clean |
博客每一次有一点的更改,甚至只改一个字,也需要输入这三条指令进行上传,未免有些繁琐。于是,我将这三条指令写进了一个批处理文件中,每次修改后执行一次bat文件便能完成上传。
由于在VSCode里写博客,每次打开bat文件仍然需要输入指令,尽管并不麻烦,但我仍然觉得不够意思。有没有一种方式,能一键进行上传呢?自然而然,我想到了VSCode的插件。
从软件的分类来说,Visual Studio属于集成开发环境(IDE),即集成了文本编辑器、编译器、调试器、用户图形界面等一系列元素的软件;而Visual Studio Code(VSCode) 属于文本编辑器,只具备文本编辑功能。但是,VSCode的插件功能给予了它极大的自由。通过安装插件,能对VSCode的功能进行扩展,使其具备IDE的各种功能。同时,VSCode对插件的开发也有很好的支持和活跃的社区。
环境搭建
在正式开发自己的插件之前,需要先搭建开发环境。
开发VSCode插件需要官方提供的两个包:
- Yeoman:通用型项目的脚手架工具,可以通过一套模板,生成对应的项目结构。
- generator-code:VS Code扩展生成器,与yo配合使用才能构建项目。
两个包通过npm命令安装:
1 | $ npm install -g yo |
安装完这两个包,环境也就搭建完成了。
开发之前
打开想要开始开发的路径,输入命令:
1 | $ yo code |
便会进入一串信息的输入,用于构建相应的框架。
- What type of extension do you want to create? (Use arrow keys) (即将构建的插件的类型):
这里根据自己的需求选择就好,作为新手,我们可以选择js语言的extension。
- What’s the name of your extension? (插件的名称):
如题,输入插件的名称。
- What’s the identifier of your extension? (myfirstextension) (插件的标识符):
每个插件在上架VSCode扩展商店前,需要提供一个唯一的标识符,用于识别。
- Enable JavaScript type checking in ‘jsconfig.json’? (JS的类型检测)
- Initialize a git repository? (是否创建Git仓库)
- Which package manager to use? (使用哪个包管理器)
等待命令执行完毕,点击调试按钮,会弹出另一个vscode窗口[扩展开发宿主],这个即是我们调试的插件的环境。
快捷键Ctrl+Shift+P调出命令窗口,向其中输入”Hello World”
输入结束后回车,窗口右下角出现信息提示,便说明插件成功运行了。
开始开发吧!
VSCode插件的主要文件结构如下图,作为新手,我们最需要关注的是其中的packge.json和extension.js。
package.js
这个文件描述了vscode插件的基本信息,具体内容见下:
1 | { |
extension.js
这个JavaScript文件是插件执行的入口,具体内容见下:
1 | // The module 'vscode' contains the VS Code extensibility API |
打包与发布
插件在完成编写后,可以通过几种方式分享给别人。
如果插件只是开发来自己使用或者在小范围内使用的话,只需要将打包后的插件发送给使用者,使用者在本地安装就可以了。如果想要将自己的插件在互联网中分享,那么将插件上架到vscode的插件市场,那么所有人都可以下载安装你的插件。
打包发布插件需要vsce工具,通过命令安装:
1 | $ npm install -g vsce |
安装完成后,在插件的根目录里执行命令便可以对插件进行打包。
1 | $ vsce package |
打包后文件夹中会出现一个插件名.vsix的文件,这个便是打包后的插件了。在vscode中双击该文件,便可以进行安装使用了。
注意:打包插件前需要修改README.md文件,否则无法进行打包。
将插件发布至扩展市场,需要注册一个开发者账号,具体步骤可以参考官方文档
- 在Visual Studio Team Services注册一个账号
- 创建Personal Access Token
获取对应的token后,在插件根目录里执行命令:
1 | $ vsce login 你的用户名 |
然后输入获得的token,便完成了账号的绑定。
再执行:
1 | $ vsce publish |
这样插件便发布到了扩展市场,稍后便可以在网页或vscode的插件市场里搜索到自己的插件了。
如果需要升级已发布的插件,只需要修改版本号再执行vsce publish即可。
目的达成
经历了一番折腾后,我的第一个插件Hexo3StepHelper成功实现了一键更新博客(这篇博客便是通过Hexo3StepHelper一键发布),插件也成功发布到了vscode的扩展市场里,可以被任何人搜索到,后续也会不断更新新功能。也欢迎用vscode和Hexo搭配写博客的朋友试试Hexo3StepHelper,期待着大家的宝贵意见。