質問: 以下のQitaの記事を参照しながら、Rails5 + React + Hypernova によるサーバーサイドレンダリングを試してみました。 RailsでReduxコンテナをサーバサイドレンダリング (use Hypernova by airbnb) それまで全てERBで記述していたViewの一部を、サーバーサイドレンダリングに置き換える(上記記事の内容を一通り実施した状態)までは成功しました。 しかし、その後jsファイルの内容(上記記事内のMyComponent.js)を書き換えたり(function MyComponentを、システムに即した名前にする等)、cssの内容を編集する等して画面を更新すると、エラー画面になってしまいます。 Railsサーバーとnodeサーバーのどちらか、あるいは両方とも再起動しても、改善しません。 エラーコードは以下のような内容です。 ``` BrowserifyRails::BrowserifyError in Homepage#index Showing /rails_root/app/views/layouts/application.html.erb where line #9 raised: Error while running `/rails_root/node_modules/.bin/browserifyinc --list --cachefile=/Users/Ryouta/projects/Homepage/tmp/cache/browserify-rails/browserifyinc-cache.json -o "/Users/Ryouta/projects/Homepage/tmp/cache/browserify-rails/output20161103-40894-ce60va" -`: env: node: No such file or directory <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %> <%= yield %> ``` env: node: No such file or directory が怪しいと思い、検索をかけてみましたが、npm install 時にこのメッセージが出る、といったものが大半で、Rails + Reactでのケースを見つけられませんでした。 原因、可能なら対処方法について、心当たりのことが有ればご教授ください。 開発環境は以下のとおりです。 * OS: OS X Yosemite 10.10.15(Macbook pro) * Ruby : 2.3.1 * Rbenv : 1.0.0 * Rails : 5.0.0.1 * Node : 6.9.1 * nodebrew : 0.9.6 また、Gemfileおよびpackage.jsonには以下のライブラリを追加しています。 **gem** unicorn : 5.0.0 browerify-rails : 3.3.0 hypernova : 1.0.3 **package.json** hypernova : 2.0.0 hypernova-react : 2.0.0 react : 15.3.2 react-dom : 15.3.2 browserify : 13.1.1 browserify-incremental : 3.1.1
回答: 解決しました。 unicornからrailsサーバーを再起動する際、終了時にうまくプロセスが落ちずにそのまま残っていたらしく、結果、再起動が行われていなかったことが、ログから判明しました。 ps aux | grep unicorn からunicornのプロセスを調べ、全てkillしてから再起動したところ、エラーは発生せず、変更内容も反映されていました。