Я установил узел / npm с NVM в Ubuntu 18.04. Я могу s sh на сервер и запустить node -v
(v13.9.0) и npm -v
(v13.9.0), чтобы они были установлены и выполнялись пользователем.
Когда я пытаюсь и сделать это с помощью инструмента развертывания Laravel Envoy Я получаю следующую ошибку:
bash: line 5: npm: command not found
Мой скрипт Envoy очень прост:
@servers(['main' => ['deploy@**.***.**.**']])
@task('deploy', ['on' => 'main'])
composer -V
npm -v
@endtask
Итак по какой-то причине, когда Envoy входит на сервер, он не имеет доступа к узлу / npm. Все остальное, установленное в системе, такое как php и composer, работает нормально.
Есть ли какая-либо причина, по которой Envoy не видит установленный узел NVM / npm? Envoy не входит в систему с моим пользователем развертывания?
Когда я проверяю, на какой npm он указывает:
/home/deploy/.nvm/versions/node/v13.9.0/bin/npm
Я пытался позвонить это прямо в моей оболочке s sh и получить правильный результат, npm работает как ожидалось.
Затем я попытался добавить это в мой скрипт Envoy следующим образом:
@task('deploy', ['on' => 'main'])
composer -V
/home/deploy/.nvm/versions/node/v13.9.0/bin/node -v
@endtask
Однако он возвращает ошибку:
‘node’: No such file or directory
Интересно, что я могу запустить узел, используя Laravel Envoy, напрямую ссылаясь на двоичный файл, например /home/deploy/.nvm/versions/node/v13.9.0/bin/node -v