google-app-engine - 简单的 gulp 任务部署到谷歌应用程序引擎并将输出流到控制台?

标签 google-app-engine gulp

有没有一种好方法可以执行 gcloud 命令以将应用程序部署到 GAE 并查看控制台上回显的 stderr/stdout?我尝试过 gulp-exec 但它似乎批量输出,仅在完成后转储。当尝试本地预览时,它也不会很好地播放。

最佳答案

最后我不想使用另一个 npm,但受到 gulp-run 部分的启发,我想出了以下假设“干净”和“build' 任务存在,并且还覆盖了属于我的 'build' 一部分的 gulp-replace 任务的每个环境的一些常量,关键是子 shell 的生成并将其输出通过管道传输到当前进程的:

// gulp deploy [-a dev|staging|prod]
gulp.task('deploy', function() {
  var commands = {
    remote: 'gcloud preview app deploy app.yaml -q --set-default --project ',
    local: 'gcloud preview app run app.yaml'
  };

  var environments = {
    dev: {
      app: 'myapp-dev',
    },
    staging: {
      app: 'myapp-staging',
      MY_ENDPOINT: 'https://staging.example.com'
    },
    prod: {
      app: 'myapp',
      MY_ENDPOINT: 'https://example.com'
    }
  };

  var command = commands.local;
  var env = environments[argv.a];
  if (env) {
    command = commands.remote + env.app;
    constantsMap.MY_ENDPOINT = env.MY_ENDPOINT;
  }

  // Now that our constants are configured, kick off the build, then deploy.
  runSequence('clean', 'build', function() {
    var title = util.format('$ %s\n', $.util.colors.blue(command));
    process.stdout.write(title);
    // run the command in its own subshell and pipe the output to our own.
    var subshell = childProcess.spawn('sh', ['-c', command]);
    subshell.stdout.pipe(process.stdout);
    subshell.stderr.pipe(process.stderr);
  });
});

这依赖于 npms:run-sequence、util、yargs、gulp-load-plugins

关于google-app-engine - 简单的 gulp 任务部署到谷歌应用程序引擎并将输出流到控制台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32623815/

相关文章:

java - Appengine Channel Api 存在 _ah/channel/connected 不工作

python - 应用引擎的电子邮件客户端

google-app-engine - Gradle : Plugin with id appengine not found

server - 在本地服务器上与团队一起使用 gulp。错误 : EPERM: operation not permitted,

javascript - BrowserSync CSS 注入(inject) + runSequence

javascript - BrowserSync 和 Gulp。无法重新加载以适用于 JS/HTML

java - Objectify - 与 IN 过滤器操作相反

java - BlobstoreServiceserve() 不提供内容长度

command-line - 如何从 Go 运行 CLI 命令?

javascript - 使用 gulp.src() 列出数组中的所有文件