1.1.0 • Published 3 years ago

ta-loader v1.1.0

Weekly downloads
3
License
MIT
Repository
-
Last release
3 years ago

ta-loader

version: 1.1.0

基于 webpack 的埋点自动化方案:注释即埋点。开发环境零干扰,自动生成报告,省略单项可配置。

安装

本项目依赖 babel 版本:7.0 +

  yarn add -D ta-loader

使用

webpack 配置格式如下:

  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: [
          {
            loader: 'babel-loader'
          },
          // 在 babel-loader 之前加载(自下而上)
          {
            loader: 'ta-loader'
          }
        ]
      }
    ]
  }

在需要埋点的地方使用如下形式注释:

  // e.g. 1 -> INSTANCE.FUNC({ id: 'id' })
  /**
   * @log id
   */

  // e.g. 2 -> INSTANCE.FUNC({ id: 'id', key1: 'value1', key2: value2 })
  /**
   * @log id
   * @param key1 value1
   * @param key2 $value2
   */

即可在打包时自动完成埋点方法注入。

Vue

vue.config.js 内配置:

module.exports = {
  chainWebpack(config) {
    config.module
      .rule('js')
      .test(/\.js$/)
      .use('ta-loader')
      .loader('ta-loader')
      .options({
        // ...
      })
      .end()
  }
}

埋点方式

理想情况下,你的埋点方法应为如下形式:

  INSTANCE.FUNC({ id: '...', ...params })

你可以在 options 如下形式自定义:

  {
    test: /\.js$/,
    exclude: /node_modules/,
    use: [
      {
        loader: 'ta-loader',
        options: {
          __INSTANCE_NAME__: 'TA',
          __FUNC_NAME__: 'log',
          __DEFAULT_PARAM__: 'id'
        }
      }
    ]
  }

例:

  {
    loader: 'ta-loader',
    options: {
      __INSTANCE_NAME__: 'Push',
      __FUNC_NAME__: 'event',
      __DEFAULT_PARAM__: 'id'
    }
  }

将在注释处注入:

  Push.event({ id: '...', ...params })

注:本 loader 只对注释进行处理转为方法,埋点具体方法需要自己实现。

配置项

注解配置

在注释时,将读取以下注解与值:

@name必须说明
@logyes唯一 id 标识符
@moduleno所属模块(生成报告使用)
@descriptionno说明信息(生成报告使用)
@ignoreno是否忽略该处注释,你可以通过使用 @ignore 注解临时忽略某一处的埋点
@paramno附带参数,可多项;当以 $ 为前缀时进行动态变量取值

loader options

name类型默认值必须说明
envstringproductionno在什么环境启用,若未设定环境,则由 open 决定是否启用
ignorearray[]no需要忽略的注解对应 @log 值的列表
openbooleantrueno是否启用注解转换(总开关)
reportbooleantrueno是否生成埋点报告
__INSTANCE_NAME__stringTAno埋点方法实例名
__FUNC_NAME__stringlogno埋点所需调用方法名
__DEFAULT_PARAM__stringidno埋点唯一标识 key 值

埋点报告

默认情况下,打包将自动在根目录生成埋点报告:

  • report-detailed.json :埋点详细数据

  • report-simple.json :埋点一览(不包括忽略处)

你可以适配埋点报告导入埋点系统,完善埋点一体化流水线。

其他

如果你需要更复杂的应用场景,可以进一步开发自己的埋点自动化流水线。

1.1.0

3 years ago

1.0.0

3 years ago