前端脚手架搭建(二)主入口编写 jfet

215 阅读1分钟

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;
  }