12
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【React】ソースコードを隠す方法

Last updated at Posted at 2020-04-29

Reactを開発したものをデプロイしたとき、ブラウザのDevToolsでソースコードが見えてしまうという経験はありますか。
ソースコードが見られるのはセキュリティ的にはよくないし、しかもカッコ悪い!!ので、なんとかしましょう!

スクリーンショット 2020-04-29 15.39.23.png

方法1:Server Side Rendering(SSR)

根本的にFrontend側ではなく、Backend側で処理を書けば良いということです。
ソースコード隠蔽ができるだけではなく、Single Page Application (SPA)のデメリットを克服することもできます。

  • FirstView表示時間の短縮:
     SPAでは、「Backend側からレスポンスを返す→Frontend側でJavaScriptを実行→表示」という流れなので、FirstView表示時間は従来の方法より長くなります。SSRと組み合わせることで、FirstView表示時間を短縮することができます。
  • SEOの改善:
     SPAでは、Backendからレスポンスが返された時点で、まだHtmlが生成されないため、Search EngineのClawlerがコンテンツを認識するのは難しくなります。SSRと組み合わせることで、この問題も改善されます。
  • Isomophic (Universal) JavaScriptの実現:
     FrontendとBackendを分けることによって、色々メリットが生まれますが、その代わりFrontendとBackendとのロジックの共有ができなくなります。SSRと組み合わせることで、Isomophic (Universal) JavaScriptを実現でき、FrontendとBackendとのロジックの共有が可能になります。
    Isomophic (Universal) JavaScriptについてより知りたい方はこちらを参考にしてください。

SSRを実現するためには色々な方法があると思いますが、Vercel社(旧名:Zeit社)が開発しているNext.jsを使うと簡単にできます。

方法2: Create-react-appのGENERATE_SOURCEMAP

SSRを導入するのは大変だ、という方はCreate-react-appのGENERATE_SOURCEMAPを無効化する方法もあります。
Create-react-appでビルドしているのであれば、下記のようにスクリプトに追記すれば良いです。

package.json
scripts: {
  "build": "GENERATE_SOURCEMAP=false react-scripts build"
}

もしくは.envファイルに下記を追記しても良いです。

GENERATE_SOURCEMAP=false

上記はReactでソースコードを隠す方法を紹介しました。
間違ったところなどがあれば是非ご指摘ください。また、他の方法をご存知の方はご教示いただければ幸いです。

12
11
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?