ご覧いただきありがとうございます。
React_Railsを使用したアプリケーションを運用しています。
今回Railsのバージョンを5.0.1から5.1.5にアップグレードしたことに伴い、React_Railsをやめ、WebpackerでのReactに移行しようと考えています。
ですがReactを使用している箇所が多く、すぐには移行できないため、React_RailsとWebpackerで導入したReactを共存させたいと思っています。
ローカルで以下のプロセスでWebpackerとReactを導入しました。
-
- gem 'webpacker', '~> 3.5'を書いて
bundle install
- gem 'webpacker', '~> 3.5'を書いて
-
bundle exec rails webpacker:install
実行
-
bundle exec rails webpacker:install:react
実行
すると、Uncaught ReferenceError: process is not defined
という環境変数系のエラーが出るようになりました。以下がエラー対象のコードです。上記のプロセスの2までだとエラーが発生しません。
node_modules/react/index.js
1'use strict'; 2 3# processが存在しないと怒られる 4if (process.env.NODE_ENV === 'production') { 5 module.exports = require('./cjs/react.production.min.js'); 6} else { 7 module.exports = require('./cjs/react.development.js'); 8}
原因としては、以下の2つかと思っています。
-
- /assets/javascript/application.jsに記載のある
//= require react
がnode_modulesのReactを読み込むようになってしまったこと
- /assets/javascript/application.jsに記載のある
-
- Webpacker内部で環境変数の動作がうまくいっていない
環境変数系は以下の記事を参考に対応したのですがうまくいかず。。
https://qiita.com/kuriya/items/d27e20fe83a211fa28f2
React_RailsとWebpackerで導入したReactの共存方法など知っている方いらっしゃいましたらご教示いただきたいです。
情報が足りないとかあれば質問よりお願いいたします。
あなたの回答
tips
プレビュー