docs: function batchPubFiles(awpConfig, pubConfig, filePath, fileBasePath) {
        // console.log(filePath)
        "use strict";
  
        fileBasePath = fileBasePath || './htmls-dist/';
  
        var awpEnvPrefixMap = {
            'daily': 'daily.',
            'prepub': 'pre.',
            'wapp': '', //未定义
            'online': ''
        },
        baseUri = 'http://' + awpEnvPrefixMap[pubConfig.env] + 'h5.tao'+''+'bao.org/api/api.do?_input_charset=utf-8&api=push_file&webappId=';
  
        // 52 做跳板机
        var headers = {
            'X-Forwarded-For': '10.232.135.52'
        };
  
        // 要 post 的参数
        var params = {
            api: 'push_file',
            t: Date.now(),
            operator: awpConfig.cname,
            token: awpConfig.dToken,
            data: {
                uri: null,
                operator: awpConfig.cname,
                data: null,
                isPub: !(pubConfig.env === 'wapp'),
                webappId: awpConfig.dWebappId,
                pageData: JSON.stringify({
                    isautoparse: true,
                    needPerform: true,
                    autoPub: true,
                    delVersionIfExist: true
                })
            }
        };
  
  
        if (pubConfig.env === 'daily') {
  
            baseUri += awpConfig.dWebappId;
  
        } else {
  
            baseUri += awpConfig.oWebappId;
            params.data.webappId = awpConfig.oWebappId;
            params.token = awpConfig.oToken;
        }
      
        var fileParam = JSON.parse(JSON.stringify(params)); // Simple Clone
  
        // t 需要更新
        fileParam.t = Date.now();
  
        // uri 部分需要文件路径拼接
        fileParam.data.uri = [awpConfig.oWebappDir, filePath.replace(fileBasePath, '').replace(/\\/g, '/')].join('/');
  
        // console.log(fileParam.data.uri);
  
        // data 字段为文件内容
        fileParam.data.data = fs.readFileSync(filePath.replace(fileBasePath, ''), 'utf-8');
  
        // data 需要 JSON 序列化
        fileParam.data = JSON.stringify(fileParam.data);
        fileParam.token = getToken(fileParam);
  
        // console.log(fileParam);
  
        // 向 awp post 请求
        request.post({
            headers: headers,
            url: baseUri,
            form: fileParam,
            encoding: 'utf8',
            json: true
        }, function(err, response, ret) {
  
            if (err) {
  
                console.log('亲，抱歉发布失败了,请检查下您的网络连接！');
                console.error(err);
  
            } else if (!ret.success) {
              
                // 发布失败
                console.log(error('>> 发布失败 <%s>'), filePath);
                console.log(error(' | %s'), ret.msg.replace(/\n/igm, ''));
                process.exit(0);
  
            } else {
  
                // 发布成功
                if (ret.data) {
                    console.log(success('>> 发布成功，版本号：%s <%s>\n | 预览地址：%s\n | 线上地址：%s'), ret.data.versionId?ret.data.versionId:'预发无版本号', filePath, ret.data.previewUrl, ret.data.onlineUrl);
                    if(pubConfig.env == 'online') {
                        console.log('你会发现上面的预览地址已经生效了，下面的线上地址h5.m.tao'+''+'bao.com还没生效，此时系统正在进行性能验收，请耐心等待旺旺通知，一般需要3-5分钟，验收通过会自动发布！')
                    }
                } else {
                    console.log(success('>> 发布成功 -> %s'), filePath);
                }
  
            }
  
        });
  
      }