使用miniprogram-ci上传代码出现cpu100%问题?
发布于 4 年前 作者 chaomo 9155 次浏览 来自 官方Issues

开发中需求是后台自动上传代码,所以使用node.js进行代码上传,使用PHP的exec进行命令行控制,但是使用过程中出现cpu达到100%的情况;

代码如下

	// node.js
const ci = require('/目录/miniprogram-ci');

let data = process.argv[2];
data = JSON.parse(data);

if(!data) return;

let appid = data.a;
let projectPath = '/目录/' + data.p;
let uploadKey = `/目录/key/private.${appid}.key`;
let desc = new Date() + data.d;
let version = data.v;

// 创建项目对象
const project = new ci.Project({
    appid,    // 小程序appid
    type: 'miniProgram',  // 类型,小程序或小游戏
    projectPath: projectPath, // 项目路径
    privateKeyPath: uploadKey,  // 密钥路径
    ignores: ['node_modules/**/*'],  // 忽略的文件
});

// 调用上传方法
ci.upload({
    project,
    version,
    desc,
    setting: {
        es6: true, // 是否 "es6 转 es5"
        minify: true,  // 是否压缩代码
    },
}).then(res => {
    console.log('成功')
}).catch(error => {
    if (error.errCode == -1) {
        console.log('上传成功')
    }
    console.log('上传失败');
    process.exit(-1)
});

PHP代码如下:
 foreach($data_id as $v){
   if(!empty($v)){
      $oa_appid = DB::table('名称')->where('id',$v)->value('appid');
      $idStr = PHP_EOL . 'id:' . $v;
      if(empty($oa_appid)){
         $fail_str .= $idStr . '字符串太长';
         continue;
      }
      $applet_data['v'] = $data['vision'];//版本号
      $applet_data['d'] = $data['desc'];//备注
      $applet_data['a'] = $oa_appid;//appid
      $applet_data['p'] = $data['path'];//上传路径(路径不可随意填写)
      $json_data = json_encode($applet_data);
      $str_lenth = strlen($json_data);
      if($str_lenth > 70){
         $fail_str .= $idStr . '字符串太长';
         continue;
      }
      $res = exec('node /目录/node.js ' . escapeshellarg($json_data),$node_res);// 2>&1
      if($res == '成功'){
         $suc_str .= $idStr . '成功';
      } else {
         $fail_str .= $idStr . '上传失败';
         $path = public_path() . '/目录/' . date('Y-m-d') . 'log';
         file_put_contents($node_res,$path,FILE_APPEND);
      }
   }
}

有没有大佬救救孩子啊,我是用的laraavel框架

1 回复

node没有进行任何配置,安装好后就没有进行更改

回到顶部