bundle exec rails g devise:installエラー

deviseをインストールしてbundle exec rails g devise:installを実行したらエラーが出てしまいました

エラー内容は以下の通り

Running via Spring preloader in process 80283
Could not find generator 'devise:install'. 
Run `rails generate --help` for more options.

調べてみるとspring stopを実行して再度実行するとできると書いてあったので実行します。

一応deviseをアンインストールをして再度インストールしてbundle exec rails g devise:installを実行

invoke  active_record
      create    db/migrate/20191221094542_devise_create_users.rb
      create    app/models/user.rb
      invoke    test_unit
      create      test/models/user_test.rb
      create      test/fixtures/users.yml
      insert    app/models/user.rb
       route  devise_for :users

無事実行されました。

何でこのエラーが出たのかがわかりませんでしたが、上記の内容で解決できるみたいです。

springとは

アプリケーションをバックグラウンドで実行し続けることによって開発をスピードアップするRailsアプリケーションプリローダーです。つまり、変更を加えたときにサーバーを再起動する必要はありません。

どうやらrailsコマンドやrakeコマンドを早く実行するためにバックグラウンドでアプリケーションを立ち上げておいて、コマンドが実行されるたびに立ち上がっているアプリケーションを読み込んでコマンド実行のスピードを上げてるみたいです。

参考

bundle exec rails generate devise:install で 「Could not find generator 'devise:install'.」とエラー - Qiita

スプリング関連

rails/springコードリーディング

Railsの開発効率をあげる - Springを使ってRailsのコンソールコマンドの実行を早くする - Rails Webook

GitHub - rails/spring: Rails application preloader