以前react-create-appで作ったアプリを公開できておらず,先日GCEでサーバを立て,ようやく公開するぞ!と思ったらビルドエラーになって嵌ったので,解決方法を残しておきます。

GCE上でビルドするとエラーになったので調査。

$ npm run build
> webtxtdiff@0.0.1 build webtxtdiff
> react-scripts build

Creating an optimized production build...
Failed to create a production build. Reason:
Module not found: Error: Cannot resolve module 'react/lib/EventPluginHub' in node_modules/react-tap-event-plugin/src
npm ERR! Linux 4.4.0-47-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "build"
npm ERR! node v6.9.1
npm ERR! npm v4.0.3
  1. エラーメッセージを確認する前に,まずはローカルでビルドしてみる。 → OK
  2. GCE上の問題? と思って悩んでしまったのがバッドエンディング。。
  3. 改めてエラーメッセージを読むと 'react/lib/EventPluginHub' in node_modules/react-tap-event-plugin/src と思いっきり書いてある。
  4. ローカル環境のnode_module/react/package.jsonを見ると15.3.1。GCE環境のreactを見ると15.4.1になっている
  5. react-tap-event-pluginのreleasesを確認するとreact 15.4未満とは互換性ないよと書いてある →「これだ」
  6. package.json の react-tap-event-plugin を2.0以上にして npm install することで解決しました。