2017-01-01 2 views
1

Я обновился с рельсов-4.2.7.1 до 5.0.1, теперь, когда я запускаю guard, он по какой-то причине перезагружается. Это заставляет его попытаться запустить второй экземпляр Rails, но он умирает, потому что он уже работает.Охранные рельсы загадочно перезагрузились

» bundle exec guard 
Expected string default value for '--listen-on'; got false (boolean) 
17:57:54 - INFO - Bundle already up-to-date 
17:57:54 - INFO - [Guard::Rails] will start the default web server on port 3000 in development. 
17:57:54 - INFO - Starting Rails... 
DEPRECATION WARNING: before_filter is deprecated and will be removed in Rails 5.1. Use before_action instead. (called from <top (required)> at /home/istrasci/dev/rails/credalizer/config/application.rb:9) 
=> Booting Puma 
=> Rails 5.0.1 application starting in development on http://localhost:3000 
=> Run `rails server -h` for more startup options 
Puma starting in single mode... 
* Version 3.6.2 (ruby 2.3.3-p222), codename: Sleepy Sunday Serenity 
* Min threads: 5, max threads: 5 
* Environment: development 
* Listening on tcp://localhost:3000 
Use Ctrl-C to stop 
17:58:03 - INFO - Rails started, pid 9732 
17:58:03 - INFO - Guard::RSpec is running 
17:58:03 - INFO - [Guard::Yard] Stopping YARD Documentation Server. 
17:58:03 - INFO - [Guard::Yard] Starting YARD Documentation Server. 
17:58:03 - INFO - LiveReload is waiting for a browser to connect. 
>> YARD 0.9.5 documentation server at http://localhost:8808 
Puma starting in single mode... 
* Version 3.6.2 (ruby 2.3.3-p222), codename: Sleepy Sunday Serenity 
* Min threads: 5, max threads: 5 
* Environment: development 
* Listening on tcp://0.0.0.0:8808 
Use Ctrl-C to stop 
17:58:04 - INFO - [Guard::Yard] Server successfully started. 
* Restarting...  <------------------------------------------- HERE 
17:58:06 - INFO - Guard is now watching at '/home/istrasci/dev/rails/credalizer' 
[1] guard(main)> DEPRECATION WARNING: before_filter is deprecated and will be removed in Rails 5.1. Use before_action instead. (called from <top (required)> at /home/istrasci/dev/rails/credalizer/config/application.rb:9) 
=> Booting Puma 
=> Rails 5.0.1 application starting in development on http://localhost:3000 
=> Run `rails server -h` for more startup options 
A server is already running. Check /home/istrasci/dev/rails/credalizer/tmp/pids/development.pid. 
Exiting 

Затем экземпляр, был работает не отвечает, так что я должен вручную удалить этот файл или tmp/pids/development.pid выхода из караульной строки. Мои рельсы отлично работали в Rails 4. Кто-нибудь знает, почему это происходит?


Вот мой Guardfile

notification :gntp if RUBY_PLATFORM =~ /darwin/i 
notification :libnotify if RUBY_PLATFORM =~ /linux/i 

guard :bundler do 
    watch('Gemfile') 
end 

guard 'rails' do 
    watch('Gemfile.lock') 
    watch(%r{^(config|lib)/.*}) 
end 

guard :rspec, cmd: 'bin/rspec' do 
    watch(%r{^spec/.+_spec\.rb$}) 
    watch(%r{^lib/(.+)\.rb$})  { |m| "spec/lib/#{m[1]}_spec.rb" } 
    watch('spec/spec_helper.rb') { "spec" } 

    # Rails example 
    watch(%r{^app/(.+)\.rb$})       { |m| "spec/#{m[1]}_spec.rb" } 
    watch(%r{^app/(.*)(\.erb|\.haml|\.slim)$})   { |m| "spec/#{m[1]}#{m[2]}_spec.rb" } 
    watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] } 
    watch(%r{^spec/support/(.+)\.rb$})     { "spec" } 
    watch('config/routes.rb')       { "spec/routing" } 
    watch('app/controllers/application_controller.rb') { "spec/controllers" } 
    watch('spec/rails_helper.rb')      { "spec" } 

    # FactoryGirl factory files 
    begin 
    require 'active_support/inflector' 
    watch(%r{^spec/factories/(.+)\.rb$})  { |m| "spec/models/#{m[1].singularize}_spec.rb" } 
    watch(%r{^spec/factories/document_data.rb}) { |m| "spec/models/document_data_spec.rb" } 
    rescue LoadError 
    end 

    # Capybara features specs 
    watch(%r{^app/views/(.+)/.*\.(erb|haml|slim)$})  { |m| "spec/features/#{m[1]}_spec.rb" } 

    # Turnip features and steps 
    watch(%r{^spec/acceptance/(.+)\.feature$}) 
    watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' } 
end 

guard 'livereload' do 
    watch(%r{app/views/.+\.(erb|haml|slim)$}) 
    watch(%r{^app/assets/.+\.(s?css|js)}) 
    watch(%r{app/helpers/.+\.rb}) 
    watch(%r{public/.+\.(css|js|html)}) 
    watch(%r{config/locales/.+\.yml}) 
    # Rails Assets Pipeline 
    watch(%r{(app|vendor)(/assets/\w+/(.+\.(css|js|html|png|jpg))).*}) { |m| "/assets/#{m[3]}" } 
end 

guard 'yard' do 
    watch(%r{app/.+\.rb}) 
    watch(%r{lib/.+\.rb}) 
    watch(%r{ext/.+\.c}) 
end 

ответ

1

Привет Я сопровождающим перилами. Как мой тест, минимальный багги Guardfile выглядит следующим образом:

guard 'rails' 
guard 'yard' 

Вопрос заключается в том, что, по неизвестной причине, охранник-ярд остановка и перезапуск сервера Puma во время запуска. Это сервер dev по умолчанию, представленный в Rails 5.0. Если рельсы уже запущены, он убьет сервер и заставит его перезагрузиться, но не сработает.

Что вам нужно сделать, это просто поменять их местами:

guard 'yard' 
guard 'rails' 

На самом деле, я считаю, охранник-ярд не должен убить сервер рельсов всеми средствами.

+0

спасибо добрый сэр. Я попробую и дам вам знать. – istrasci

+0

ОК, похоже, что это работает. Еще раз спасибо! – istrasci

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