Skip to content

Instantly share code, notes, and snippets.

@azu
Last active February 25, 2021 04:30
Show Gist options
  • Save azu/cfbdb383993132e4d8d1e488c0da7622 to your computer and use it in GitHub Desktop.
Save azu/cfbdb383993132e4d8d1e488c0da7622 to your computer and use it in GitHub Desktop.
サーバサイドとReact production build

サーバサイドとReact

要約: Reactをサーバサイドで使うときも、クライアントサイドのように圧縮(code eliminate)しないと遅いよ

Reactはdev向けのコードを大量に含んでいる。 これはprocess.env.NODE_ENV !== 'production'の時実行されるassertや警告などが主となりproductionには必要ない。 そのため、process.env.NODE_ENV = 'production'をしないとかなり不利な結果を得る。

I tend to agree that "compiling server side code with webpack to remove access to process" is not what Node developers would typically do, and likely many React users are not even aware of this possibility. So the current results are probably more representative of React SSR perf in the wild. However, it can also be a bit unfair to not show React's perf with full optimization.

サーバサイドもprocess.env.NODE_ENV === 'production'でuglifyしてdead codeを消し去ったReactを使うことでデバッグ情報がないものとなる。 Reactが公式で配っているbundle済みのもの(min.js)を使うのが手早い。

将来的には、Reactはdevとprodのbundleをそれぞれ配布しREACT_ENVでどちらを使うか設定出来るようになるかも とのこと。 (NODE_ENVも引き続き見る感じ)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment