【Hexo插件系列】hexo cli 源码

提供hexo init、hexo help、hexo version命令

简介

源码

根入口 package.json

package.json 的核心配置

1
2
3
4
5
6
{
"name": "hexo-cli",
"main": "lib/hexo", # 入口文件,即 lib/hexo.js
"bin": {
"hexo": "./bin/hexo" # 该文件会拷贝到系统bin目录,即hexo命令。
},

hexo命令

hexo-cli/bin/hexo这个文件会被link到/usr/bin/hexo,实现全局hexo命令。实质是node的js可执行脚本。

1
require('../lib/hexo')();

hexo-cli/lib/hexo.js的核心代码,引入了三个子命令。

1
2
3
4
5
entry.console = {
init: require('./console/init'), // hexo init
help: require('./console/help'), // hexo help
version: require('./console/version') // hexo version
};

hexo init

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
module.exports = function(ctx) {
var console = ctx.extend.console;

// 注册 hexo help 命令
console.register('help', 'Get help on a command.', {}, require('./help'));

// 注册 hexo init 命令
console.register('init', 'Create a new Hexo folder.', {
desc: '...',
usage: '[...]',
arguments: [... ],
options: [... ]
}, require('./init'));

// 注册 hexo version 命令
console.register('version', 'Display version information.', {}, require('./version'));
};

hexo help、hexo version 三个子命令

hexo version 三个子命令