2

当通过 capistrano 任务运行时,我试图弄清楚这个命令有什么问题。如果我直接在服务器上运行它运行良好:

desc 'Run npm install on remote server'
  task :npm_install do
    on roles(:app) do
      puts '**** NPM INSTALL ****'
      execute "cd /var/www/#{fetch(:application)}/current/hapi && NODE_ENV=#{fetch(:env)} npm install"
    end
  end

没有多大帮助的错误

$ cap prod deploy:npm_install
**** NPM INSTALL ****
INFO [23ed2aa2] Running /usr/bin/env cd /var/www/myapp/current/hapi && NODE_ENV=prod npm install as myuser@123.456.789.101
(Backtrace restricted to imported tasks)
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as myuser@123.456.789.101: cd /var/www/myapp/current/hapi && NODE_ENV=prod npm install exit status: 1
cd /var/www/myapp/current/hapi && NODE_ENV=prod npm install stdout: Nothing written
cd /var/www/myapp/current/hapi && NODE_ENV=prod npm install stderr: Nothing written

SSHKit::Command::Failed: cd /var/www/myapp/current/hapi && NODE_ENV=prod npm install exit status: 1
cd /var/www/myapp/current/hapi && NODE_ENV=prod npm install stdout: Nothing written
cd /var/www/myapp/current/hapi && NODE_ENV=prod npm install stderr: Nothing written

Tasks: TOP => deploy:npm_install
(See full trace by running task with --trace)

有没有办法为通过 capistrano 运行的远程任务打开有用的错误消息或某些东西?

4

1 回答 1

2

This blog post或this SO answer应该可以帮助您增加调试。

常见问题解答应帮助您了解 Capistrano 的行为与正常 SSH 会话不同的原因。

于 2015-04-02T06:50:35.820 回答