jfet
主入口
// 入口
const cli = require('../lib');
// 获取对应插件命令
cli.run(process.argv[2]);
// 初始化插件命令
const command = new Command(option);
// 加载插件
const commandPlugin = command.loadPlugin();
- 载入对应插件
loadPlugin() {
let plugin = null;
const jfetOptions = this.jfetOptions;
const name = this.name;
// 校验插件名称
if (!PLUGIN_NAME_REGEX.test(name)) {
return utilLog.error('Plugin name error. It should be a-z and 0-9.', true);
}
console.log('loadPlugin' + cwd)
// 如果存在commandPlugin选项,优先加载该路径的插件
if (jfetOptions.commandPlugin) {
plugin = util.loadPackage(path.join(cwd, jfetOptions.commandPlugin));
} else {
plugin = util.loadPackage(COMMAND_PREFIX.map(c => `${c}${name}`));
}
// 获取到的插件名称和输入名称一致
if (plugin && plugin.name === name) {
this.plugin = plugin;
}
return this.plugin;
}