Проблема с запуском Capistrano задач оболочки (развертывание nodejs) - PullRequest
2 голосов
/ 04 сентября 2011

Я использую capistrano для развертывания приложения node.js, и у меня возникла проблема с установкой задач оболочки.Например, думал, что я установил npm, это завершается ошибкой:

run "npm install" npm не найден

, и когда я использую

run "/opt/nvm/'cat /opt/nvm/alias/default'/bin/npm install", ошибка не найдена

Развертывание управляется специальным пользователем для развертывания.

Не могли бы вы рассказать, что может вызвать эту проблему и как ее решить?

Ответы [ 4 ]

3 голосов
/ 18 февраля 2013

Использование NVM и Capistrano работает для меня, выполнив команду через bash и выбрав сначала файл nvm.sh.

Мой NVM установлен в /opt/nvm, поэтому задача npm install может выглядеть примерно так:

namespace :npm do

  desc 'Install the current npm environment.'
  task :install do
    invoke_command "bash -c '. /opt/nvm/nvm.sh && cd #{current_path} && npm install'", :via => run_method
  end

end

Поэтому нет необходимости вручную устанавливать путь к двоичным файлам, читаяфайл псевдонима от NVM.

2 голосов
/ 05 сентября 2011

Похоже, что исполняемые файлы npm / node отсутствуют в $ PATH для удаленного пользователя, выполняющего сценарий Capistrano.

Вам следует дважды проверить, какой пользователь Capistrano работает и что такое $ PATH (и исправляя по мере необходимости)

1 голос
/ 06 декабря 2013

Я закончил тем, что добавил это к своему Capfile

set :default_environment, {
  'PATH' => "$PATH:/usr/local/ruby/bin/:/home/ubuntu/.nvm/v0.10.21/bin"
}
0 голосов
/ 31 марта 2015

Тем временем (более года назад) я создал расширение Capistrano для простого использования nvm: https://github.com/koenpunt/capistrano-nvm

Расширение будет отображать node и npm по умолчанию, ноВы можете добавить любой исполняемый файл, для запуска которого требуется nvm (например, grunt).

Базовая установка будет работать, добавив следующее к вашему deploy.rb:

require 'capistrano/nvm'

set :nvm_type, :user # or :system, depends on your nvm setup
set :nvm_node, 'v0.10.21'
set :nvm_map_bins, %w{node npm}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...