Rbenv incapable de trouver de fil au cours du déploiement Capistrano

voix
0

Je me sers de Capistrano pour le déploiement de mon application Rails. Il ne parvient pas à l'étape suivante:

   01 $HOME/.rbenv/bin/rbenv exec bundle install --path /var/www/bubblin.io/shared/bundle --without development test --deployment --quiet
    ✔ 01 marvin@bubblin.io 1.053s
00:26 yarn:install
      01 $HOME/.rbenv/bin/rbenv exec yarn install --production
      01 rbenv: yarn: command not found

$HOME/.rbenv/bin/rbenv exec yarn install --production
      01 rbenv: yarn: command not found
#<Thread:0x00007fb9b626fcd8@/Users/sa/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.17.0/lib/sshkit/runners/parallel.rb:10 run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
    1: from /Users/sa/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.17.0/lib/sshkit/runners/parallel.rb:11:in `block (2 levels) in execute'
/Users/sa/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.17.0/lib/sshkit/runners/parallel.rb:15:in `rescue in block (2 levels) in execute': Exception while executing as marvin@bubblin.io: yarn exit status: 127 (SSHKit::Runner::ExecuteError)
yarn stdout: rbenv: yarn: command not found
yarn stderr: Nothing written
(Backtrace restricted to imported tasks)
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as marvin@bubblin.io: yarn exit status: 127
yarn stdout: rbenv: yarn: command not found
yarn stderr: Nothing written

Je ssh'ed dans le serveur et essayé ce qui suit, ce qui fonctionne:

$ yarn install --production
yarn install v1.10.1
[1/4] Resolving packages...
success Nothing to install.
success Saved lockfile.
Done in 0.06s.

Mais quand je préfixe la même commande avec rbenv execelle échoue.

$ rbenv exec yarn install --production
rbenv: yarn: command not found

Toutes les dépendances semblent être correctement installé, mais rbenvne sont pas en mesure de trouver yarnpour une raison quelconque?

Créé 20/10/2018 à 02:45
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
2

Je pense yarnest gestionnaire de paquets nodejs, ne devrait pas fonctionner via rbenv execpeut-être?

Donc, dans ce cas, vous pouvez simplement l'utiliser de la coquille régulière plutôt que rbenv. Par exemple, essayez de créer la tâche comme ce qui suit devrait faire le travail.

desc "Yarn Install"
task :yarn_install do
  on roles(:all) do |host|
    execute :yarn, :install, "--production"
  end
end

Ensuite, exécutez avec bundle exec cap production yarn_install

Ou, appelez la tâche d'une autre tâche que vous avez etc.

Mettre à jour:

Si ne pas utiliser de fils,

En Gemfile, supprimer ou commenter « Capistrano-fil »

#gem 'capistrano-yarn'

En Capfile, supprimer ou commenter « Capistrano / fils »

#require 'capistrano/yarn'

Pour créer un nouveau projet:

rails new <name> --skip-yarn

Mais, sur le projet existant, mis webpacker.check_yarn_integrityà falsedans des fichiers env app (c. -à- app / config / development.rb app / config / production.rb)

config.webpacker.check_yarn_integrity = false

Trouvez javascript_pack_tagou stylesheet_pack_tagen app/views/*chemin, puis de les commenter, comme ceci:

<%# javascript_pack_tag "" %>
<%# stylesheet_pack_tag "" %>
Créé 20/10/2018 à 07:23
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more