content
content copied to clipboard
This module add more than 2.5MB to the output
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
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
Exactly, the shikiji
dimension is too much
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?
what I see is that the .output node_modules plugin itself is too big. All themes and languages are included.
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
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
we should create a test that monitor the bundle size of nitro server.
I will fork this package to play with it and break things.
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!
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?
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
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...
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
It would be great for some attention here. We are also blocked for simple markdown static pages example. What are the options?