失敗したコマンドcd client && npm run build:production
はhttps://github.com/shakacode/react_on_rails/blob/master/lib/tasks/assets.rakeからのものです
使用する場合は、これらの内容で作成し、ルート Rails アプリで実行するcapistrano-npm
ためcapistrano-nvm
に使用します。ただし、React クライアントのコマンドを実行するためには使用されません。 /tmp/my_app_name/nvm-exec.sh
npm install
package.json
#!/bin/bash -e
source "$HOME/.nvm/nvm.sh"
nvm use $NODE_VERSION
exec "$@"
出力は次のとおりです。
cap production deploy
rvm 1.27.0 (latest) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
ruby-2.3.1
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]
00:00 nvm:wrapper
01 mkdir -p /tmp/rails_cap_deploy/
✔ 01 ubuntu@myserver.com 0.034s
Uploading /tmp/my_app_name/nvm-exec.sh 100.0%
...
...
00:16 npm:install
01 /tmp/my_app_name/nvm-exec.sh npm install --production --silent --no-progress
01 Now using node v6.9.2 (npm v3.10.9)
✔ 01 ubuntu@myserver.com 4.370s
00:20 deploy:assets:precompile
01 ~/.rvm/bin/rvm default do bundle exec rake assets:precompile
01 cd client && npm run build:production
01
01 sh: 1:
01 npm: not found
01
01 rake aborted!
01 Command failed with status (127): [cd client && npm run build:production...]
01 /opt/my_app_name/stg/shared/bundle/ruby/2.3.0/gems/react_on_rails-6.3.2/lib/tasks/assets.rake:33:in `block (3 levels) in <top (required)>'
01 /opt/my_app_name/stg/shared/bundle/ruby/2.3.0/gems/rake-12.0.0/exe/rake:27:in `<top (required)>'
...
01 Tasks: TOP => assets:precompile => react_on_rails:assets:compile_environment => react_on_rails:assets:webpack
01 (See full trace by running task with --trace)
(Backtrace restricted to imported tasks)
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as ubuntu@myserver.com: rake exit status: 1
rake stdout: Nothing written
rake stderr: cd client && npm run build:production
sh: 1: npm: not found
rake aborted!
Command failed with status (127): [cd client && npm run build:production...]
ここに私の依存関係があります:
Ubuntu 16.04
rvm 1.27.0
ruby-2.3.1
NPM - 3.10.9
NODE - v6.9.2
NVM - 0.32.1
Gems:
rails (5.0.0.1)
react_on_rails (6.3.2)
capistrano (3.7.0)
capistrano-npm (1.0.2)
capistrano-nvm (0.0.6)
capistrano-passenger (0.2.0)
capistrano-rails (1.2.0)
capistrano-bundler (~> 1.1)
capistrano-rvm (0.1.2)
Capfile:
require 'capistrano/npm'
require 'capistrano/nvm'