Аналогичный вопрос по SO, но с рельсами 5. Этот пример: Rails 6.0.3 с VPS в разработке.
Бег
RAILS_ENV=development bundle exec rails assets:precompile
на сервере или cap development deploy
локально для развертывания приводят к тому, что listen оказывается скрытым от vue.
Сервер:
RAILS_ENV=development bundle exec rails assets:precompile
rails aborted!
LoadError: Could not load the 'listen' gem. Add `gem 'listen'` to the development group of your Gemfile
локальное развертывание:
01 rake aborted!
01 LoadError: Could not load the 'listen' gem. Add `gem 'listen'` to the development group of your Gemfile
01 /home/deploy/zappa/shared/bundle/ruby/2.6.0/gems/bootsnap-1.5.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
01 /home/deploy/zappa/shared/bundle/ruby/2.6.0/gems/bootsnap-1.5.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
...
01 Caused by:
01 LoadError: cannot load such file -- listen
но вот в чем дело:
group :development do
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
gem 'web-console', '>= 3.3.0'
gem 'listen', '~> 3.4'
gem 'spring'
gem 'spring-watcher-listen', '~> 2.0.0'
end
Комментирование драгоценного камня из Gemfile предсказуемо терпит неудачу; Я предполагаю, что рельсы хотят знать об изменениях и действовать только в соответствии с ними.
Выполнение RAILS_ENV=development bundle install
возвращает подсказку:
Gems in the groups development and test were not installed.
Так как же сделать видимым listen
драгоценный камень?
Перемещение вызова gem из блока development
в глобальный блок позволяет RAILS_ENV=development bundle install
работать на удаленном сервере. Теперь гем прослушивания установлен, и развертывание можно приступить к компиляции. это хак, так как прослушивание предназначено только для режима разработки; см. ответ ниже
bundle config
для параметраwithout
? Включает ли онdevelopment
, когда не должен? См. bundler.io/guides/groups.html. - person pdobb   schedule 14.01.2021Set for your local app (/home/deploy/zappa/releases/20210113174140/.bundle/config): [:development, :test]
По сути говоря, следует вызыватьBundler.require(:default, :development)
илиbundle install --with development
. Я ошибочно предположил, что вызовRAILS_ENV=development bundle install
очевиден (я не сталкивался с этой проблемой в Rails 5)? - person Jerome   schedule 14.01.2021