content icon indicating copy to clipboard operation
content copied to clipboard

This module add more than 2.5MB to the output

Open Barbapapazes opened this issue 8 months ago • 14 comments

Environment


  • Operating System: Linux
  • Node Version: v18.18.0
  • Nuxt Version: 3.8.1
  • CLI Version: 3.9.1
  • Nitro Version: 2.7.2
  • Package Manager: [email protected]
  • Builder: -
  • User Config: modules, nitro, devtools
  • Runtime Modules: @nuxt/[email protected]
  • Build Modules: -

Reproduction

Create a fresh nuxt project and simply add the module to the nuxt.config.ts and build the project using npm run build. nothing more, not needed to use the module.

Building Nitro Server
ℹ Building Nitro Server (preset: node-server)                                                                                                                                                                                                        nitro 2:19:05 PM
✔ Nitro server built                                                                                                                                                                                                                                 nitro 2:19:22 PM
  ├─ .output/server/chunks/app/_nuxt/client-db-36e070d7.mjs (16.3 kB) (4.56 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/client-db-36e070d7.mjs.map (17.2 kB) (3.8 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/ContentDoc-39a32748.mjs (8.24 kB) (2.5 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/ContentDoc-39a32748.mjs.map (7.32 kB) (1.71 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/ContentList-b1bac05a.mjs (3.33 kB) (1.24 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/ContentList-b1bac05a.mjs.map (2.32 kB) (724 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ContentNavigation-eb474818.mjs (5.56 kB) (2.02 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/ContentNavigation-eb474818.mjs.map (4.9 kB) (1.4 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/ContentQuery-7b6d8171.mjs (6.87 kB) (1.92 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/ContentQuery-7b6d8171.mjs.map (6.26 kB) (1.27 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/ContentRenderer-0fc5a106.mjs (3.72 kB) (1.34 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/ContentRenderer-0fc5a106.mjs.map (2.92 kB) (850 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ContentRendererMarkdown-131e0743.mjs (14.2 kB) (4.18 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/ContentRendererMarkdown-131e0743.mjs.map (16.6 kB) (3.42 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/ContentSlot-c6ebfdeb.mjs (4.95 kB) (1.55 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/ContentSlot-c6ebfdeb.mjs.map (6.17 kB) (1.48 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/DocumentDrivenEmpty-122249a7.mjs (865 B) (487 B gzip)
  ├─ .output/server/chunks/app/_nuxt/DocumentDrivenEmpty-122249a7.mjs.map (937 B) (424 B gzip)
  ├─ .output/server/chunks/app/_nuxt/DocumentDrivenNotFound-303dbff2.mjs (676 B) (388 B gzip)
  ├─ .output/server/chunks/app/_nuxt/DocumentDrivenNotFound-303dbff2.mjs.map (648 B) (342 B gzip)
  ├─ .output/server/chunks/app/_nuxt/error-404-24ffb3cd.mjs (4.57 kB) (1.85 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/error-404-24ffb3cd.mjs.map (2.34 kB) (781 B gzip)
  ├─ .output/server/chunks/app/_nuxt/error-404-styles.d352c5f6.mjs (3.98 kB) (1.25 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/error-404-styles.d352c5f6.mjs.map (346 B) (216 B gzip)
  ├─ .output/server/chunks/app/_nuxt/error-500-ed88b8f7.mjs (3.64 kB) (1.53 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/error-500-ed88b8f7.mjs.map (1.7 kB) (600 B gzip)
  ├─ .output/server/chunks/app/_nuxt/error-500-styles.a47c06d2.mjs (2.28 kB) (869 B gzip)
  ├─ .output/server/chunks/app/_nuxt/error-500-styles.a47c06d2.mjs.map (346 B) (215 B gzip)
  ├─ .output/server/chunks/app/_nuxt/index-6a088328.mjs (979 B) (461 B gzip)
  ├─ .output/server/chunks/app/_nuxt/index-6a088328.mjs.map (1.14 kB) (457 B gzip)
  ├─ .output/server/chunks/app/_nuxt/island-renderer-2376111d.mjs (1.64 kB) (675 B gzip)
  ├─ .output/server/chunks/app/_nuxt/island-renderer-2376111d.mjs.map (914 B) (416 B gzip)
  ├─ .output/server/chunks/app/_nuxt/Markdown-30519c5f.mjs (1.05 kB) (541 B gzip)
  ├─ .output/server/chunks/app/_nuxt/Markdown-30519c5f.mjs.map (1.02 kB) (450 B gzip)
  ├─ .output/server/chunks/app/_nuxt/nuxt-link-2b824ccf.mjs (6.44 kB) (1.81 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/nuxt-link-2b824ccf.mjs.map (6.14 kB) (1.52 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/nuxt.config-2fc5de45.mjs (211 B) (162 B gzip)
  ├─ .output/server/chunks/app/_nuxt/nuxt.config-2fc5de45.mjs.map (265 B) (194 B gzip)
  ├─ .output/server/chunks/app/_nuxt/preview-4c3c1787.mjs (2.68 kB) (1.02 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/preview-4c3c1787.mjs.map (3.19 kB) (1.01 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseA-085287d6.mjs (2.39 kB) (928 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseA-085287d6.mjs.map (1.48 kB) (571 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseBlockquote-e7e462ac.mjs (1.73 kB) (705 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseBlockquote-e7e462ac.mjs.map (903 B) (392 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseCode-d08b40ea.mjs (1.15 kB) (534 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseCode-d08b40ea.mjs.map (1.21 kB) (452 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseCode-styles.93005832.mjs (282 B) (192 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseCode-styles.93005832.mjs.map (323 B) (201 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseCodeInline-8d7dac01.mjs (1.74 kB) (720 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseCodeInline-8d7dac01.mjs.map (903 B) (391 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseEm-3342d1a8.mjs (1.68 kB) (696 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseEm-3342d1a8.mjs.map (886 B) (385 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseH1-631d0b43.mjs (2.29 kB) (923 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseH1-631d0b43.mjs.map (1.67 kB) (607 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseH2-e2e3ba85.mjs (2.3 kB) (923 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseH2-e2e3ba85.mjs.map (1.69 kB) (611 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseH3-045772b2.mjs (2.3 kB) (925 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseH3-045772b2.mjs.map (1.69 kB) (612 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseH4-64356366.mjs (2.3 kB) (924 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseH4-64356366.mjs.map (1.69 kB) (611 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseH5-072a5e83.mjs (2.3 kB) (924 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseH5-072a5e83.mjs.map (1.69 kB) (612 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseH6-a46dc3e9.mjs (2.3 kB) (923 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseH6-a46dc3e9.mjs.map (1.69 kB) (610 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseHr-6d4fc8cd.mjs (1.58 kB) (660 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseHr-6d4fc8cd.mjs.map (755 B) (353 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseImg-0b95d588.mjs (2.56 kB) (1 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseImg-0b95d588.mjs.map (1.9 kB) (647 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseLi-1511462a.mjs (1.68 kB) (696 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseLi-1511462a.mjs.map (886 B) (385 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseOl-d104b208.mjs (1.68 kB) (697 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseOl-d104b208.mjs.map (886 B) (386 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseP-e679641a.mjs (1.67 kB) (694 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseP-e679641a.mjs.map (884 B) (384 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProsePre-5a7da1ce.mjs (2.31 kB) (854 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProsePre-5a7da1ce.mjs.map (2.28 kB) (720 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProsePre-styles.9d8d359a.mjs (319 B) (195 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProsePre-styles.9d8d359a.mjs.map (342 B) (216 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseScript-1498bd1f.mjs (1.18 kB) (613 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseScript-1498bd1f.mjs.map (1.04 kB) (464 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseStrong-2d25db44.mjs (1.7 kB) (702 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseStrong-2d25db44.mjs.map (895 B) (393 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseTable-d9eb1c10.mjs (1.7 kB) (699 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseTable-d9eb1c10.mjs.map (893 B) (389 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseTbody-629a3411.mjs (1.7 kB) (702 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseTbody-629a3411.mjs.map (893 B) (391 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseTd-0381fa22.mjs (1.68 kB) (697 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseTd-0381fa22.mjs.map (886 B) (386 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseTh-5b4e3686.mjs (1.68 kB) (697 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseTh-5b4e3686.mjs.map (886 B) (386 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseThead-32ce743d.mjs (1.7 kB) (699 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseThead-32ce743d.mjs.map (893 B) (389 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseTr-ec2eb79b.mjs (1.68 kB) (695 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseTr-ec2eb79b.mjs.map (886 B) (385 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseUl-fb03cc37.mjs (1.68 kB) (696 B gzip)
  ├─ .output/server/chunks/app/_nuxt/ProseUl-fb03cc37.mjs.map (886 B) (385 B gzip)
  ├─ .output/server/chunks/app/_nuxt/query-aa1865ab.mjs (13 kB) (4.03 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/query-aa1865ab.mjs.map (15.9 kB) (3.52 kB gzip)
  ├─ .output/server/chunks/app/client.manifest.mjs (26.4 kB) (1.63 kB gzip)
  ├─ .output/server/chunks/app/client.manifest.mjs.map (14.3 kB) (1.06 kB gzip)
  ├─ .output/server/chunks/app/server.mjs (35.7 kB) (8.59 kB gzip)
  ├─ .output/server/chunks/app/server.mjs.map (334 B) (221 B gzip)
  ├─ .output/server/chunks/app/styles.mjs (930 B) (337 B gzip)
  ├─ .output/server/chunks/app/styles.mjs.map (499 B) (222 B gzip)
  ├─ .output/server/chunks/build/mdc-imports.mjs (175 B) (129 B gzip)
  ├─ .output/server/chunks/build/mdc-imports.mjs.map (228 B) (155 B gzip)
  ├─ .output/server/chunks/error-500.mjs (4.26 kB) (1.82 kB gzip)
  ├─ .output/server/chunks/error-500.mjs.map (237 B) (174 B gzip)
  ├─ .output/server/chunks/handlers/renderer.mjs (13.3 kB) (4.2 kB gzip)
  ├─ .output/server/chunks/handlers/renderer.mjs.map (588 B) (271 B gzip)
  ├─ .output/server/chunks/highlighter.mjs (4.39 kB) (1.33 kB gzip)
  ├─ .output/server/chunks/highlighter.mjs.map (231 B) (178 B gzip)
  ├─ .output/server/chunks/index.mjs (922 B) (376 B gzip)
  ├─ .output/server/chunks/index.mjs.map (246 B) (159 B gzip)
  ├─ .output/server/chunks/nitro/node-server.mjs (256 kB) (62.4 kB gzip)
  ├─ .output/server/chunks/nitro/node-server.mjs.map (10.6 kB) (1.48 kB gzip)
  ├─ .output/server/chunks/raw/content-index.mjs (130 B) (128 B gzip)
  ├─ .output/server/chunks/raw/content-index.mjs.map (105 B) (103 B gzip)
  ├─ .output/server/chunks/raw/content-navigation.mjs (145 B) (134 B gzip)
  ├─ .output/server/chunks/raw/content-navigation.mjs.map (110 B) (105 B gzip)
  ├─ .output/server/chunks/rollup/_virtual_spa-template.mjs (94 B) (100 B gzip)
  ├─ .output/server/chunks/rollup/_virtual_spa-template.mjs.map (112 B) (112 B gzip)
  ├─ .output/server/index.mjs (871 B) (356 B gzip)
  └─ .output/server/package.json (4.65 kB) (1.29 kB gzip)
Σ Total size: 13.5 MB (3.17 MB gzip)
✔ You can preview this build using node .output/server/index.mjs   
Building Nitro Server (without content)
ℹ Building Nitro Server (preset: node-server)                                                                                                                                                                                                        nitro 2:17:37 PM
✔ Nitro server built                                                                                                                                                                                                                                 nitro 2:17:43 PM
  ├─ .output/server/chunks/app/_nuxt/error-404-700643e5.mjs (10.1 kB) (3.23 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/error-404-700643e5.mjs.map (8.35 kB) (2.06 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/error-404-styles.d352c5f6.mjs (3.98 kB) (1.25 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/error-404-styles.d352c5f6.mjs.map (346 B) (216 B gzip)
  ├─ .output/server/chunks/app/_nuxt/error-500-ed88b8f7.mjs (3.03 kB) (1.35 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/error-500-ed88b8f7.mjs.map (1.68 kB) (600 B gzip)
  ├─ .output/server/chunks/app/_nuxt/error-500-styles.a47c06d2.mjs (2.28 kB) (869 B gzip)
  ├─ .output/server/chunks/app/_nuxt/error-500-styles.a47c06d2.mjs.map (346 B) (215 B gzip)
  ├─ .output/server/chunks/app/_nuxt/index-6a088328.mjs (979 B) (461 B gzip)
  ├─ .output/server/chunks/app/_nuxt/index-6a088328.mjs.map (1.14 kB) (457 B gzip)
  ├─ .output/server/chunks/app/_nuxt/island-renderer-2376111d.mjs (1.03 kB) (500 B gzip)
  ├─ .output/server/chunks/app/_nuxt/island-renderer-2376111d.mjs.map (892 B) (416 B gzip)
  ├─ .output/server/chunks/app/client.manifest.mjs (3.06 kB) (501 B gzip)
  ├─ .output/server/chunks/app/client.manifest.mjs.map (1.91 kB) (388 B gzip)
  ├─ .output/server/chunks/app/server.mjs (29.3 kB) (7.41 kB gzip)
  ├─ .output/server/chunks/app/server.mjs.map (334 B) (221 B gzip)
  ├─ .output/server/chunks/app/styles.mjs (508 B) (260 B gzip)
  ├─ .output/server/chunks/app/styles.mjs.map (359 B) (198 B gzip)
  ├─ .output/server/chunks/error-500.mjs (4.26 kB) (1.82 kB gzip)
  ├─ .output/server/chunks/error-500.mjs.map (237 B) (174 B gzip)
  ├─ .output/server/chunks/handlers/renderer.mjs (12.7 kB) (4.03 kB gzip)
  ├─ .output/server/chunks/handlers/renderer.mjs.map (588 B) (273 B gzip)
  ├─ .output/server/chunks/index.mjs (317 B) (207 B gzip)
  ├─ .output/server/chunks/index.mjs.map (224 B) (158 B gzip)
  ├─ .output/server/chunks/nitro/node-server.mjs (158 kB) (38.5 kB gzip)
  ├─ .output/server/chunks/nitro/node-server.mjs.map (4.27 kB) (899 B gzip)
  ├─ .output/server/chunks/rollup/_virtual_spa-template.mjs (94 B) (100 B gzip)
  ├─ .output/server/chunks/rollup/_virtual_spa-template.mjs.map (112 B) (112 B gzip)
  ├─ .output/server/index.mjs (266 B) (185 B gzip)
  └─ .output/server/package.json (707 B) (296 B gzip)
Σ Total size: 2.14 MB (514 kB gzip)

Describe the bug

Because of this, it's impossible to deploy a dynamic nuxt project (with static content page) on a provider like cloudflare.

Also, adding 2.5MB to the bundle, without using any function seems a looooot.

Additional context

No response

Logs

No response

Barbapapazes avatar Nov 09 '23 13:11 Barbapapazes

Shiki is huge

shiki in bundle
.output/server/node_modules/shikiji/dist/langs:
total 5.6M
-rw-r--r-- 1 esteban esteban 435K Nov  9 14:19 cpp.mjs
-rw-r--r-- 1 esteban esteban 264K Nov  9 14:19 wolfram.mjs
-rw-r--r-- 1 esteban esteban 198K Nov  9 14:19 typescript.mjs
-rw-r--r-- 1 esteban esteban 195K Nov  9 14:19 jsx.mjs
-rw-r--r-- 1 esteban esteban 193K Nov  9 14:19 tsx.mjs
-rw-r--r-- 1 esteban esteban 193K Nov  9 14:19 javascript.mjs
-rw-r--r-- 1 esteban esteban 181K Nov  9 14:19 objective-cpp.mjs
-rw-r--r-- 1 esteban esteban 133K Nov  9 14:19 mdx.mjs
-rw-r--r-- 1 esteban esteban 115K Nov  9 14:19 php.mjs
-rw-r--r-- 1 esteban esteban 111K Nov  9 14:19 blade.mjs
-rw-r--r-- 1 esteban esteban 110K Nov  9 14:19 objective-c.mjs
-rw-r--r-- 1 esteban esteban 108K Nov  9 14:19 vyper.mjs
-rw-r--r-- 1 esteban esteban 101K Nov  9 14:19 csharp.mjs
-rw-r--r-- 1 esteban esteban  85K Nov  9 14:19 hack.mjs
-rw-r--r-- 1 esteban esteban  83K Nov  9 14:19 python.mjs
-rw-r--r-- 1 esteban esteban  81K Nov  9 14:19 mojo.mjs
-rw-r--r-- 1 esteban esteban  81K Nov  9 14:19 swift.mjs
-rw-r--r-- 1 esteban esteban  76K Nov  9 14:19 c.mjs
-rw-r--r-- 1 esteban esteban  66K Nov  9 14:19 ocaml.mjs
-rw-r--r-- 1 esteban esteban  64K Nov  9 14:19 ballerina.mjs
-rw-r--r-- 1 esteban esteban  63K Nov  9 14:19 stata.mjs
-rw-r--r-- 1 esteban esteban  63K Nov  9 14:19 html.mjs
-rw-r--r-- 1 esteban esteban  61K Nov  9 14:19 markdown.mjs
-rw-r--r-- 1 esteban esteban  59K Nov  9 14:19 haskell.mjs
-rw-r--r-- 1 esteban esteban  58K Nov  9 14:19 css.mjs
-rw-r--r-- 1 esteban esteban  54K Nov  9 14:19 imba.mjs
-rw-r--r-- 1 esteban esteban  52K Nov  9 14:19 apex.mjs
-rw-r--r-- 1 esteban esteban  52K Nov  9 14:19 ada.mjs
-rw-r--r-- 1 esteban esteban  48K Nov  9 14:19 perl.mjs
-rw-r--r-- 1 esteban esteban  45K Nov  9 14:19 d.mjs
-rw-r--r-- 1 esteban esteban  44K Nov  9 14:19 latex.mjs
-rw-r--r-- 1 esteban esteban  44K Nov  9 14:19 ruby.mjs
-rw-r--r-- 1 esteban esteban  42K Nov  9 14:19 asm.mjs
-rw-r--r-- 1 esteban esteban  40K Nov  9 14:19 julia.mjs
-rw-r--r-- 1 esteban esteban  40K Nov  9 14:19 cobol.mjs
-rw-r--r-- 1 esteban esteban  37K Nov  9 14:19 shellscript.mjs
-rw-r--r-- 1 esteban esteban  37K Nov  9 14:19 nginx.mjs
-rw-r--r-- 1 esteban esteban  36K Nov  9 14:19 r.mjs
-rw-r--r-- 1 esteban esteban  36K Nov  9 14:19 crystal.mjs
-rw-r--r-- 1 esteban esteban  36K Nov  9 14:19 codeql.mjs
-rw-r--r-- 1 esteban esteban  33K Nov  9 14:19 scss.mjs
-rw-r--r-- 1 esteban esteban  33K Nov  9 14:19 stylus.mjs
-rw-r--r-- 1 esteban esteban  32K Nov  9 14:19 vhdl.mjs
-rw-r--r-- 1 esteban esteban  32K Nov  9 14:19 applescript.mjs
-rw-r--r-- 1 esteban esteban  32K Nov  9 14:19 erlang.mjs
-rw-r--r-- 1 esteban esteban  31K Nov  9 14:19 apl.mjs
-rw-r--r-- 1 esteban esteban  30K Nov  9 14:19 java.mjs
-rw-r--r-- 1 esteban esteban  30K Nov  9 14:19 coffee.mjs
-rw-r--r-- 1 esteban esteban  29K Nov  9 14:19 scala.mjs
-rw-r--r-- 1 esteban esteban  28K Nov  9 14:19 fsharp.mjs
-rw-r--r-- 1 esteban esteban  27K Nov  9 14:19 razor.mjs
-rw-r--r-- 1 esteban esteban  25K Nov  9 14:19 sql.mjs
-rw-r--r-- 1 esteban esteban  25K Nov  9 14:19 nim.mjs
-rw-r--r-- 1 esteban esteban  24K Nov  9 14:19 twig.mjs
-rw-r--r-- 1 esteban esteban  24K Nov  9 14:19 powershell.mjs
-rw-r--r-- 1 esteban esteban  22K Nov  9 14:19 groovy.mjs
-rw-r--r-- 1 esteban esteban  22K Nov  9 14:19 matlab.mjs
-rw-r--r-- 1 esteban esteban  22K Nov  9 14:19 mermaid.mjs
-rw-r--r-- 1 esteban esteban  22K Nov  9 14:19 viml.mjs
-rw-r--r-- 1 esteban esteban  21K Nov  9 14:19 mdc.mjs
-rw-r--r-- 1 esteban esteban  21K Nov  9 14:19 marko.mjs
-rw-r--r-- 1 esteban esteban  21K Nov  9 14:19 system-verilog.mjs
-rw-r--r-- 1 esteban esteban  21K Nov  9 14:19 kusto.mjs
-rw-r--r-- 1 esteban esteban  21K Nov  9 14:19 gnuplot.mjs
-rw-r--r-- 1 esteban esteban  20K Nov  9 14:19 vue.mjs
-rw-r--r-- 1 esteban esteban  20K Nov  9 14:19 graphql.mjs
-rw-r--r-- 1 esteban esteban  20K Nov  9 14:19 purescript.mjs
-rw-r--r-- 1 esteban esteban  20K Nov  9 14:19 gherkin.mjs
-rw-r--r-- 1 esteban esteban  19K Nov  9 14:19 rust.mjs
-rw-r--r-- 1 esteban esteban  19K Nov  9 14:19 elixir.mjs
-rw-r--r-- 1 esteban esteban  19K Nov  9 14:19 yaml.mjs
-rw-r--r-- 1 esteban esteban  18K Nov  9 14:19 svelte.mjs
-rw-r--r-- 1 esteban esteban  18K Nov  9 14:19 go.mjs
-rw-r--r-- 1 esteban esteban  18K Nov  9 14:19 cue.mjs
-rw-r--r-- 1 esteban esteban  18K Nov  9 14:19 abap.mjs
-rw-r--r-- 1 esteban esteban  18K Nov  9 14:19 liquid.mjs
-rw-r--r-- 1 esteban esteban  17K Nov  9 14:19 solidity.mjs
-rw-r--r-- 1 esteban esteban  17K Nov  9 14:19 wasm.mjs
-rw-r--r-- 1 esteban esteban  17K Nov  9 14:19 lua.mjs
-rw-r--r-- 1 esteban esteban  17K Nov  9 14:19 nix.mjs
-rw-r--r-- 1 esteban esteban  17K Nov  9 14:19 pug.mjs
-rw-r--r-- 1 esteban esteban  16K Nov  9 14:19 gdscript.mjs
-rw-r--r-- 1 esteban esteban  16K Nov  9 14:19 clarity.mjs
-rw-r--r-- 1 esteban esteban  16K Nov  9 14:19 actionscript-3.mjs
-rw-r--r-- 1 esteban esteban  15K Nov  9 14:19 v.mjs
-rw-r--r-- 1 esteban esteban  15K Nov  9 14:19 hjson.mjs
-rw-r--r-- 1 esteban esteban  14K Nov  9 14:19 bat.mjs
-rw-r--r-- 1 esteban esteban  14K Nov  9 14:19 lisp.mjs
-rw-r--r-- 1 esteban esteban  14K Nov  9 14:19 apache.mjs
-rw-r--r-- 1 esteban esteban  14K Nov  9 14:19 handlebars.mjs
-rw-r--r-- 1 esteban esteban  13K Nov  9 14:19 beancount.mjs
-rw-r--r-- 1 esteban esteban  13K Nov  9 14:19 puppet.mjs
-rw-r--r-- 1 esteban esteban  13K Nov  9 14:19 astro.mjs
-rw-r--r-- 1 esteban esteban  13K Nov  9 14:19 hcl.mjs
-rw-r--r-- 1 esteban esteban  12K Nov  9 14:19 elm.mjs
-rw-r--r-- 1 esteban esteban  12K Nov  9 14:19 prolog.mjs
-rw-r--r-- 1 esteban esteban  12K Nov  9 14:19 dream-maker.mjs
-rw-r--r-- 1 esteban esteban  12K Nov  9 14:19 cadence.mjs
-rw-r--r-- 1 esteban esteban  12K Nov  9 14:19 scheme.mjs
-rw-r--r-- 1 esteban esteban  12K Nov  9 14:19 rst.mjs
-rw-r--r-- 1 esteban esteban  11K Nov  9 14:19 raku.mjs
-rw-r--r-- 1 esteban esteban  11K Nov  9 14:19 cmake.mjs
-rw-r--r-- 1 esteban esteban  11K Nov  9 14:19 jison.mjs
-rw-r--r-- 1 esteban esteban  11K Nov  9 14:19 sas.mjs
-rw-r--r-- 1 esteban esteban 9.9K Nov  9 14:19 make.mjs
-rw-r--r-- 1 esteban esteban 9.8K Nov  9 14:19 sass.mjs
-rw-r--r-- 1 esteban esteban 9.6K Nov  9 14:19 less.mjs
-rw-r--r-- 1 esteban esteban 9.6K Nov  9 14:19 vue-html.mjs
-rw-r--r-- 1 esteban esteban 9.3K Nov  9 14:19 kotlin.mjs
-rw-r--r-- 1 esteban esteban 9.2K Nov  9 14:19 haml.mjs
-rw-r--r-- 1 esteban esteban 8.9K Nov  9 14:19 tex.mjs
-rw-r--r-- 1 esteban esteban 8.5K Nov  9 14:19 plsql.mjs
-rw-r--r-- 1 esteban esteban 8.0K Nov  9 14:19 riscv.mjs
-rw-r--r-- 1 esteban esteban 8.0K Nov  9 14:19 hlsl.mjs
-rw-r--r-- 1 esteban esteban 7.7K Nov  9 14:19 dart.mjs
-rw-r--r-- 1 esteban esteban 7.6K Nov  9 14:19 toml.mjs
-rw-r--r-- 1 esteban esteban 7.6K Nov  9 14:19 ara.mjs
-rw-r--r-- 1 esteban esteban 7.5K Nov  9 14:19 clojure.mjs
-rw-r--r-- 1 esteban esteban 7.0K Nov  9 14:19 cypher.mjs
-rw-r--r-- 1 esteban esteban 7.0K Nov  9 14:19 proto.mjs
-rw-r--r-- 1 esteban esteban 6.9K Nov  9 14:19 vb.mjs
-rw-r--r-- 1 esteban esteban 6.8K Nov  9 14:19 postcss.mjs
-rw-r--r-- 1 esteban esteban 6.8K Nov  9 14:19 wgsl.mjs
-rw-r--r-- 1 esteban esteban 6.8K Nov  9 14:19 shaderlab.mjs
-rw-r--r-- 1 esteban esteban 6.7K Nov  9 14:19 gdshader.mjs
-rw-r--r-- 1 esteban esteban 6.6K Nov  9 14:19 prisma.mjs
-rw-r--r-- 1 esteban esteban 6.3K Nov  9 14:19 xml.mjs
-rw-r--r-- 1 esteban esteban 6.3K Nov  9 14:19 dax.mjs
-rw-r--r-- 1 esteban esteban 6.2K Nov  9 14:19 powerquery.mjs
-rw-r--r-- 1 esteban esteban 6.2K Nov  9 14:19 verilog.mjs
-rw-r--r-- 1 esteban esteban 5.9K Nov  9 14:19 gdresource.mjs
-rw-r--r-- 1 esteban esteban 5.9K Nov  9 14:19 awk.mjs
-rw-r--r-- 1 esteban esteban 5.8K Nov  9 14:19 bibtex.mjs
-rw-r--r-- 1 esteban esteban 5.7K Nov  9 14:19 fish.mjs
-rw-r--r-- 1 esteban esteban 5.3K Nov  9 14:19 zig.mjs
-rw-r--r-- 1 esteban esteban 5.3K Nov  9 14:19 tcl.mjs
-rw-r--r-- 1 esteban esteban 5.1K Nov  9 14:19 nextflow.mjs
-rw-r--r-- 1 esteban esteban 4.8K Nov  9 14:19 http.mjs
-rw-r--r-- 1 esteban esteban 4.8K Nov  9 14:19 smalltalk.mjs
-rw-r--r-- 1 esteban esteban 4.6K Nov  9 14:19 zenscript.mjs
-rw-r--r-- 1 esteban esteban 4.6K Nov  9 14:19 json5.mjs
-rw-r--r-- 1 esteban esteban 4.5K Nov  9 14:19 jsonc.mjs
-rw-r--r-- 1 esteban esteban 4.5K Nov  9 14:19 bicep.mjs
-rw-r--r-- 1 esteban esteban 4.4K Nov  9 14:19 jsonl.mjs
-rw-r--r-- 1 esteban esteban 4.3K Nov  9 14:19 pascal.mjs
-rw-r--r-- 1 esteban esteban 4.3K Nov  9 14:19 json.mjs
-rw-r--r-- 1 esteban esteban 4.2K Nov  9 14:19 narrat.mjs
-rw-r--r-- 1 esteban esteban 4.0K Nov  9 14:19 turtle.mjs
-rw-r--r-- 1 esteban esteban 4.0K Nov  9 14:19 glsl.mjs
-rw-r--r-- 1 esteban esteban 3.9K Nov  9 14:19 splunk.mjs
-rw-r--r-- 1 esteban esteban 3.8K Nov  9 14:19 tasl.mjs
-rw-r--r-- 1 esteban esteban 3.8K Nov  9 14:19 jsonnet.mjs
-rw-r--r-- 1 esteban esteban 3.7K Nov  9 14:19 ssh-config.mjs
-rw-r--r-- 1 esteban esteban 3.7K Nov  9 14:19 rel.mjs
-rw-r--r-- 1 esteban esteban 3.4K Nov  9 14:19 logo.mjs
-rw-r--r-- 1 esteban esteban 3.2K Nov  9 14:19 wenyan.mjs
-rw-r--r-- 1 esteban esteban 3.2K Nov  9 14:19 jssm.mjs
-rw-r--r-- 1 esteban esteban 3.2K Nov  9 14:19 diff.mjs
-rw-r--r-- 1 esteban esteban 2.6K Nov  9 14:19 erb.mjs
-rw-r--r-- 1 esteban esteban 2.6K Nov  9 14:19 reg.mjs
-rw-r--r-- 1 esteban esteban 2.6K Nov  9 14:19 berry.mjs
-rw-r--r-- 1 esteban esteban 2.3K Nov  9 14:19 docker.mjs
-rw-r--r-- 1 esteban esteban 2.1K Nov  9 14:19 git-commit.mjs
-rw-r--r-- 1 esteban esteban 2.1K Nov  9 14:19 ini.mjs
-rw-r--r-- 1 esteban esteban 1.9K Nov  9 14:19 xsl.mjs
-rw-r--r-- 1 esteban esteban 1.9K Nov  9 14:19 glimmer-ts.mjs
-rw-r--r-- 1 esteban esteban 1.9K Nov  9 14:19 glimmer-js.mjs
-rw-r--r-- 1 esteban esteban 1.6K Nov  9 14:19 sparql.mjs
-rw-r--r-- 1 esteban esteban 1.6K Nov  9 14:19 git-rebase.mjs
-rw-r--r-- 1 esteban esteban  836 Nov  9 14:19 shellsession.mjs
-rw-r--r-- 1 esteban esteban  728 Nov  9 14:19 jinja-html.mjs

.output/server/node_modules/shikiji/dist/themes:
total 516K
-rw-r--r-- 1 esteban esteban  39K Nov  9 14:19 one-dark-pro.mjs
-rw-r--r-- 1 esteban esteban  33K Nov  9 14:19 poimandres.mjs
-rw-r--r-- 1 esteban esteban  31K Nov  9 14:19 nord.mjs
-rw-r--r-- 1 esteban esteban  23K Nov  9 14:19 dracula-soft.mjs
-rw-r--r-- 1 esteban esteban  23K Nov  9 14:19 dracula.mjs
-rw-r--r-- 1 esteban esteban  21K Nov  9 14:19 rose-pine-dawn.mjs
-rw-r--r-- 1 esteban esteban  21K Nov  9 14:19 rose-pine-moon.mjs
-rw-r--r-- 1 esteban esteban  21K Nov  9 14:19 rose-pine.mjs
-rw-r--r-- 1 esteban esteban  20K Nov  9 14:19 material-theme-palenight.mjs
-rw-r--r-- 1 esteban esteban  20K Nov  9 14:19 material-theme-lighter.mjs
-rw-r--r-- 1 esteban esteban  20K Nov  9 14:19 material-theme-darker.mjs
-rw-r--r-- 1 esteban esteban  20K Nov  9 14:19 material-theme-ocean.mjs
-rw-r--r-- 1 esteban esteban  20K Nov  9 14:19 material-theme.mjs
-rw-r--r-- 1 esteban esteban  19K Nov  9 14:19 vitesse-dark.mjs
-rw-r--r-- 1 esteban esteban  19K Nov  9 14:19 vitesse-light.mjs
-rw-r--r-- 1 esteban esteban  14K Nov  9 14:19 github-dark-dimmed.mjs
-rw-r--r-- 1 esteban esteban  11K Nov  9 14:19 github-dark.mjs
-rw-r--r-- 1 esteban esteban  11K Nov  9 14:19 github-light.mjs
-rw-r--r-- 1 esteban esteban 9.8K Nov  9 14:19 light-plus.mjs
-rw-r--r-- 1 esteban esteban 9.5K Nov  9 14:19 slack-ochin.mjs
-rw-r--r-- 1 esteban esteban 9.0K Nov  9 14:19 slack-dark.mjs
-rw-r--r-- 1 esteban esteban 8.8K Nov  9 14:19 dark-plus.mjs
-rw-r--r-- 1 esteban esteban 8.3K Nov  9 14:19 monokai.mjs
-rw-r--r-- 1 esteban esteban 8.1K Nov  9 14:19 hc_light.mjs
-rw-r--r-- 1 esteban esteban 7.2K Nov  9 14:19 solarized-dark.mjs
-rw-r--r-- 1 esteban esteban 6.8K Nov  9 14:19 solarized-light.mjs
-rw-r--r-- 1 esteban esteban 6.8K Nov  9 14:19 min-light.mjs
-rw-r--r-- 1 esteban esteban 6.2K Nov  9 14:19 min-dark.mjs
-rw-r--r-- 1 esteban esteban 3.2K Nov  9 14:19 css-variables.mjs

Barbapapazes avatar Nov 09 '23 13:11 Barbapapazes

Exactly, the shikiji dimension is too much

productdevbook avatar Nov 09 '23 13:11 productdevbook

And I'm asking but who want to use this module without prerendering every page? so why do we need to have everything in the Nitro server output if it's prerendered?

Barbapapazes avatar Nov 09 '23 13:11 Barbapapazes

what I see is that the .output node_modules plugin itself is too big. All themes and languages are included.

productdevbook avatar Nov 09 '23 13:11 productdevbook

Yes,

This is shikiji

.output/server/node_modules/shikiji/dist:
total 824K
-rw-r--r-- 1 esteban esteban 608K Nov  9 14:19 onig.mjs
-rw-r--r-- 1 esteban esteban 184K Nov  9 14:19 core.mjs
-rw-r--r-- 1 esteban esteban  11K Nov  9 14:19 langs.mjs
drwxr-xr-x 2 esteban esteban 4.0K Nov  9 14:19 langs
drwxr-xr-x 2 esteban esteban 4.0K Nov  9 14:19 themes
-rw-r--r-- 1 esteban esteban 1.9K Nov  9 14:19 themes.mjs
-rw-r--r-- 1 esteban esteban  860 Nov  9 14:19 index.mjs
-rw-r--r-- 1 esteban esteban  235 Nov  9 14:19 wasm.mjs

Barbapapazes avatar Nov 09 '23 13:11 Barbapapazes

every node_modules

6.9M    shikiji
1.3M    @vue
496K    @babel
420K    parse5
292K    emojilib
156K    mdast-util-to-hast
140K    source-map-js
120K    js-yaml
108K    property-information
76K     @unhead
72K     remark-mdc
68K     json5
60K     unified
60K     micromark-extension-gfm-table
60K     mdast-util-from-markdown
56K     stringify-entities
52K     vfile
48K     micromark-extension-gfm-footnote
48K     micromark-extension-gfm-autolink-literal
48K     character-entities
44K     hastscript
44K     devalue
40K     hast-util-raw
36K     vue
36K     @ungap
36K     @sindresorhus
32K     vfile-message
32K     unhead
32K     micromark-extension-gfm-strikethrough
32K     mdast-util-gfm-table
28K     ufo
28K     rehype-sort-attribute-values
28K     rehype-external-links
28K     parse-entities
28K     micromark-extension-gfm-task-list-item
28K     mdast-util-gfm-footnote
28K     mdast-util-gfm-autolink-literal
28K     hast-util-from-parse5
24K     rehype-sort-attributes
24K     mdast-util-phrasing
24K     mdast-util-gfm-task-list-item
24K     mdast-util-gfm-strikethrough
24K     mdast-util-definitions
24K     hookable
24K     hast-util-to-parse5
24K     hast-util-is-element
24K     github-slugger
24K     estree-walker
20K     vue-bundle-renderer
20K     vfile-location
20K     unist-util-position
20K     unist-util-generated
20K     slugify
20K     remark-rehype
20K     remark-parse
20K     node-emoji
20K     mdast-util-gfm
20K     markdown-table
20K     hast-util-to-string
20K     hast-util-parse-selector
16K     scule
16K     remark-emoji
16K     micromark-extension-gfm
16K     emoticon
16K     devlop
12K     zwitch
12K     web-namespaces
12K     unicode-emoji-modifier-base
12K     trough
12K     trim-lines
12K     space-separated-tokens
12K     skin-tone
12K     remark-gfm
12K     rehype-raw
12K     micromark-extension-gfm-tagfilter
12K     longest-streak
12K     is-plain-obj
12K     is-hexadecimal
12K     is-decimal
12K     is-alphanumerical
12K     is-alphabetical
12K     is-absolute-url
12K     html-void-elements
12K     flat
12K     extend
12K     escape-string-regexp
12K     detab
12K     decode-named-character-reference
12K     comma-separated-tokens
12K     character-reference-invalid
12K     character-entities-legacy
12K     character-entities-html4
12K     char-regex
12K     ccount
12K     bail
4.0K    micromark-util-decode-numeric-character-reference
0       unist-util-visit-parents
0       unist-util-visit
0       unist-util-stringify-position
0       unist-util-is
0       micromark-util-subtokenize
0       micromark-util-sanitize-uri
0       micromark-util-resolve-all
0       micromark-util-normalize-identifier
0       micromark-util-html-tag-name
0       micromark-util-encode
0       micromark-util-decode-string
0       micromark-util-combine-extensions
0       micromark-util-classify-character
0       micromark-util-chunked
0       micromark-util-character
0       micromark-factory-whitespace
0       micromark-factory-title
0       micromark-factory-space
0       micromark-factory-label
0       micromark-factory-destination
0       micromark-core-commonmark
0       micromark
0       mdast-util-to-string
0       mdast-util-to-markdown
0       mdast-util-find-and-replace

.output/server

14M     .output/server/node_modules
992K    .output/server/chunks
8.0K    .output/server/package.json
4.0K    .output/server/index.mjs.map
4.0K    .output/server/index.mjs

Barbapapazes avatar Nov 09 '23 13:11 Barbapapazes

we should create a test that monitor the bundle size of nitro server.

Barbapapazes avatar Nov 09 '23 14:11 Barbapapazes

I will fork this package to play with it and break things.

Barbapapazes avatar Nov 09 '23 14:11 Barbapapazes

Thanks for making issue @Barbapapazes. I think it would be really nice if content/mdc had an option to automatically disable shikiji server runtime when deploying for cloudflare workers (by default at least) considering free plan limitations.

Not sure how much it is necessary to have shikiji in all content deployments on edge but would it make sense to provide an option to disable it? /cc @farnabaz

we should create a test that monitor the bundle size of nitro server.

In general seems a really good idea (btw this is case of edge support). Also look at nuxt bundle size test by @danielroe to inspire if wanted to make one!

pi0 avatar Nov 09 '23 22:11 pi0

I think the best one would be selecting the languages in a config file or something we will be using and the themes instead of including them all. They are the biggest files in the module. Also what is onig.mjs which is over 600kb?

unitythemaker avatar Nov 10 '23 07:11 unitythemaker

It must be this https://github.com/antfu/shikiji?tab=readme-ov-file#cloudflare-workers:~:text=//%20import%20wasm%20as%20assets%0Aimport%20wasm%20from%20%27shikiji/onig.wasm%27

// import wasm as assets
import wasm from 'shikiji/onig.wasm'

https://github.com/shikijs/shiki?tab=readme-ov-file#specify-how-to-load-webassembly

Barbapapazes avatar Nov 10 '23 08:11 Barbapapazes

Also what is onig.mjs which is over 600kb?

It mainly includes a regex engine AFAIK.

Yep languages are a big chunk, still not all of it. It i think really main problem is the whole size of this syntax highlighter overhead...

pi0 avatar Nov 10 '23 10:11 pi0

I would like to revive this since I have this issue as well. I could deploy on cloudflare just fine on one day with a total bundle size of 500kb gzipped and then next day my deployment is just completely broken since the switch to shikiji bloated the size up to 8mb and 1.7mb gzipped!!

I downgraded back to 2.7.2 where the shiki package only takes up 100kb.

Please get this fixed! This took me a week to figure out why my deployment suddenly broke!

Shikiji includes EVERY single language into its package and each of them is huge. Over 100kb. Even if only one language is used, the build is bloated up by 6MB

StefanH-AT avatar Nov 23 '23 03:11 StefanH-AT

It would be great for some attention here. We are also blocked for simple markdown static pages example. What are the options?

frasza avatar Mar 20 '24 09:03 frasza