2016-12-15 11 views
3

невыполненную команду cd client && npm run build:production приходит от https://github.com/shakacode/react_on_rails/blob/master/lib/tasks/assets.rakeCapistrano развертывания завершается с react_on_rails когда НПМ устанавливается через NVM

При использовании capistrano-npm и capistrano-nvm создает /tmp/my_app_name/nvm-exec.sh с этим содержимым и использует его для запуска npm install для package.json в приложении корневые рельсы. Но он не используется для запуска команд для клиента React.

#!/bin/bash -e 
source "$HOME/.nvm/nvm.sh" 
nvm use $NODE_VERSION 
exec "[email protected]" 

Вот результат:

cap production deploy 
rvm 1.27.0 (latest) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [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 [email protected] 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 [email protected] 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 [email protected]: 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' 
+0

Эй вы исправить? Я пытаюсь запустить React on Rails через развертывание Capistrano, но я действительно не понимаю, что я должен делать ^^ " –

ответ

0

Вот как я "фиксированный" его. В моем assets.rake, используемом response_on_rails, я изменил задачу webpack.

desc "Compile assets with webpack" 
    task :webpack do 
    # => prefix commands with /tmp/amplo/nvm-exec.sh on AWS servers 
    # => http://stackoverflow.com/questions/41174807/capistrano-deploy-fails-with-react-on-rails-when-npm-is-installed-via-nvm 
    nvm_prefix = '/tmp/amplo/nvm-exec.sh' if File.exist?('/tmp/amplo/nvm-exec.sh') 
    sh "cd client && #{nvm_prefix} npm install" 
    sh "cd client && #{nvm_prefix} npm run build:client" 
    sh "cd client && #{nvm_prefix} npm run build:server" 
    end 

assets.rake файл был включен в моем приложении раньше, но позже версия react_on_rails не автоматически копировать этот файл в Lib \ задач

 Смежные вопросы

  • Нет связанных вопросов^_^