Closed6

[React] ビルド以降の話

あざらしあざらし

みりしらなので、「そんなとこから!?」というのも含めて赤裸々にまとめる

あざらしあざらし

まずは赤線すべてなくしましょう
赤線あっても npm run devは通ってしまう
build は通らないので、まずは赤線をなくしていきましょう

はなしはそれから/(^o^)\

あざらしあざらし

コンパイルしたファイルがでかすぎて怒られた

いざ、赤線なくなったのでビルド!
…してみたら通ったけど、下記のようなワーニングがでていた

ファイルの容量デカスギ!!!!って怒られているみたい。
箇条書きになってる部分が解決方法なのかな?

1つ目、2つ目の方法

ファイルを分割せよ、とのこと。下記を真似してみる?
https://zenn.dev/manalink_dev/articles/vite-bundle-analyzer

3つ目の方法

許容サイズをでかくせよ、とのこと
chunkSizeWarningLimitにパラメータを与えて大きくしてやれば簡単に無視できそうだけど、できればちゃんと解決した方がいいかな


webpack とか bundle analizer とかわからなかったので別スレ立てて考えてからみていく
https://zenn.dev/azarashi0519/scraps/4c6a7d50353117

あざらしあざらし

てなわけでバンドル(分割)していく

まずは下記を読んだ
https://qiita.com/KokiSakano/items/bda906acdd95e8923b03#title


そんなわけで、rollup-plugin-visualizer をインスコしてみたところ、なんかごちゃごちゃしていた(小並感)
はじめてみたからよくわからなかった…(´・ω・`)
けど、サードパーティー製(特にMUI)がデカデカと占拠しているように見えた
(多分視覚的にわかりやすいや~つだから感覚はあっているはず)

次に、splitVendorChunkPluginを使って、index.js と vendor.js に分割!ここでの考え方を「チャンク」というらしい

チャンクについては下記を読んだ
https://zenn.dev/toaru_fe/articles/5128fb6a6c21d2


この、index.js と vendor.js に分割してもまだ先述のワーニングがでたままだったので、
manualChunks で設定してみることにした

https://qiita.com/hibohiboo/items/d2a6a52256f99c82225e

とかも参考にしつつ、さっくり書いてみた結果が下記

import { defineConfig, splitVendorChunkPlugin } from "vite";
import react from "@vitejs/plugin-react-swc";
import { visualizer } from "rollup-plugin-visualizer";

// https://vitejs.dev/config/
export default defineConfig({
  build: {
    rollupOptions: {
      plugins: [react(), visualizer(), splitVendorChunkPlugin()],
      output: {
        manualChunks: {
          vendor: ["axios", "react", "react-router-dom", "react-dom"],
          material: ["@mui/material"],
        },
      },
    },
  },
});

これだとワーニングをなくせた!やったね


残る疑問は、実はmui はmaterial以外にも、iconとかx-data-grid も使っている
⇒ material.js にまとめたいなぁと思ったんだけど、index.js でなくて material.js のファイルサイズが多くなってしまった

  • 同じサードパーティー製はまとめるべきなんじゃないの
  • 結局、ファイルサイズはどこくらいまでなら許容なの(わかんなくてデフォルトから変更してない)
  • まぁでもビルドしたファイルを直接見たり書いたりするわけではないからいいのか?

というのがまだ気になったりする

あざらしあざらし

IISでサービスを動かす

https://qiita.com/mototoke/items/3198ed56a215fa55429e

基本的にこの記事の通りだけど、IPをたたいてみたら画面真っ白!!!!
⇒画面真っ白になった記事はたくさん出てきたけど、自分の場合はその記事では解決できなかったのであとでスクラップではなく記事に残そうと思う……

【追記】書いた
https://zenn.dev/azarashi0519/articles/f8c68a2a2be217

でも根本解決はできなかった(´・ω・`)

あざらしあざらし

とはいえ、これで一応別環境にデプロイすることができたので一旦クローズとする
別Webサーバーにあげることになったら別スレ立てる

このスクラップは2023/09/15にクローズされました