たくさんの自由帳
Androidのお話
たくさんの自由帳
投稿日 : | 0 日前
文字数(だいたい) : 2294
目次
本題
どういうこと
試してみる
検証結果
import { AndroidOutlined } from '@mui/icons-material'
import AndroidOutlined from '@mui/icons-material/AndroidOutlined'
本番ビルドは?
package.jsonにスクリプト追加
import { AndroidOutlined } from '@mui/icons-material'
import AndroidOutlined from '@mui/icons-material/AndroidOutlined'
開発時でもほしい
プラグインを入れる
.babelrcに追記
内部サーバー起動
ソースコード
どうもおはようございます。
このサイトはNuxt.jsなんですけどね初見さん(記述時時点)
Next.js
にMaterial UI
を入れたあと、import
の書き方次第でビルド時間が長くなってしまう。
よりも
の方がビルド時間が高速になり、サイズが小さくなる
どちらも同じアイコンを画面に表示するコードです
3.1 MB
965 kB
まじ?
Next.jsの静的HTMLエクスポートをして比較してみる
npm run export
コマンドを追加します
Page Size First Load JS
┌ ○ / (5246 ms) 18.1 kB 85 kB
├ /_app 0 B 67 kB
├ ○ /404 194 B 67.2 kB
└ λ /api/hello 0 B 67 kB
+ First Load JS shared by all 67 kB
├ chunks/framework.0441fa.js 42.4 kB
├ chunks/main.62b8ca.js 23.3 kB
├ chunks/pages/_app.d6feaf.js 557 B
├ chunks/webpack.1a8a25.js 729 B
└ css/120f2e2270820d49a21f.css 209 B
Page Size First Load JS
┌ ○ / (444 ms) 19.3 kB 86.3 kB
├ /_app 0 B 67 kB
├ ○ /404 194 B 67.2 kB
└ λ /api/hello 0 B 67 kB
+ First Load JS shared by all 67 kB
├ chunks/framework.2191d1.js 42.4 kB
├ chunks/main.62b8ca.js 23.3 kB
├ chunks/pages/_app.d6feaf.js 557 B
├ chunks/webpack.1a8a25.js 729 B
└ css/120f2e2270820d49a21f.css 209 B
なんか後者の方がファイルサイズ大きいんだけど。
まぁ検証結果としては本番ビルドなら上記の書き方でもツリーシェイキング?で最適化が行われるのだと思う。だた時間はかかりますね、、、
https://mui.com/guides/minimizing-bundle-size/#when-and-how-to-use-tree-shaking
Babelを正しく設定すると同じパフォーマンスを出せるらしいです。
npm install babel-plugin-import --save-dev
プロジェクトのルートディレクトリ(package.jsonがあるフォルダ)に.babelrc
って名前のファイルを追加します。
追加したら、以下の内容を入れます。
npm run dev
以上です。これで有効になるはずです。
ほい