GoGoCode 插件开发

介绍

gogocode支持插件化运行,通过gogocode-cli 初始化一个插件项目,在项目中可以自定义插件逻辑。并且可由gogocode-cli执行。

插件开发

初始化一个插件

1、下载gogocode-cli

npm install gogocode-cli -g

2、初始化gogocode插件项目

gogocode init

gogocode init 命令执行完毕,会在当前目录创建一个gogocode插件项目。

插件项目结构

gogocode 插件项目是一个标准的npm项目。项目的主入口配置在package.json的main节点。 image.png

上图截图我们可以看到,插件项目转换逻辑入口为transform.js,具体定义如下:

/**
 * 转换入口导出一个函数,按照如下函数签名
 * @param {*} fileInfo 包含 source 和 path 属性。source为待转换文本,path为路径
 * @param {*} api 包含 gogocode 作为转换工具
 * @param {*} options 其他 option 由此传入
 * @returns {string} 返回转换后的代码
 */
module.exports = function(fileInfo, api, options) {
  const sourceCode = fileInfo.source;
  const $ = api.gogocode;
  return $(sourceCode)
    .replace('const a = $_$', 'const a = 2')
    .generate();
};

我们的转换逻辑需要定义在上面的函数中,在该函数中我们可以使用gogocode进行AST转换。