Skip to content

perf(dev): use native fs.watch to watch dist, config and .env#913

Merged
danielroe merged 1 commit intomainfrom
perf/watch
Jun 14, 2025
Merged

perf(dev): use native fs.watch to watch dist, config and .env#913
danielroe merged 1 commit intomainfrom
perf/watch

Conversation

@danielroe
Copy link
Member

🔗 Linked issue

❓ Type of change

  • 📖 Documentation (updates to the documentation or readme)
  • 🐞 Bug fix (a non-breaking change that fixes an issue)
  • 👌 Enhancement (improving an existing functionality)
  • ✨ New feature (a non-breaking change that adds functionality)
  • 🧹 Chore (updates to the build process or auxiliary tools and libraries)
  • ⚠️ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description

this makes nuxt/cli a bit more minimal, given the very limited needs we have for watching in the cli itself.

@danielroe danielroe self-assigned this Jun 14, 2025
@github-actions
Copy link
Contributor

Bundle Stats — create-nuxt size comparison

Hey there, this message comes from a GitHub action that helps you and reviewers to understand how these changes affect the size of this project's bundle.

As this PR is updated, I'll keep you updated on how the bundle size is impacted.

Total

Files count Total bundle size % Changed
49 5.94 MB → 5.88 MB (-61.13 kB) -1.00%
Changeset
File Δ Size
node_modules/jiti/dist/babel.cjs 📉 -9 B (-0.00%) 1.82 MB → 1.82 MB
node_modules/dotenv/lib/main.js 📉 -9 B (-0.09%) 10.23 kB → 10.22 kB
node_modules/picomatch/lib/picomatch.js 📉 -9 B (-0.09%) 10.15 kB → 10.14 kB
node_modules/giget/dist/shared/giget.OCaTp9b-.mjs 📉 -108 B (-0.13%) 82.38 kB → 82.27 kB
node_modules/picomatch/lib/constants.js 📉 -9 B (-0.19%) 4.64 kB → 4.63 kB
node_modules/@parcel/watcher-wasm/index.mjs 📉 -18 B (-0.20%) 8.69 kB → 8.67 kB
node_modules/which/which.js 📉 -9 B (-0.26%) 3.36 kB → 3.35 kB
node_modules/cross-spawn/lib/parse.js 📉 -9 B (-0.28%) 3.16 kB → 3.15 kB
node_modules/@parcel/watcher-wasm/wrapper.js 📉 -9 B (-0.41%) 2.16 kB → 2.16 kB
node_modules/@parcel/watcher/wrapper.js 📉 -9 B (-0.41%) 2.16 kB → 2.15 kB
node_modules/picomatch/lib/utils.js 📉 -9 B (-0.42%) 2.09 kB → 2.08 kB
node_modules/cross-spawn/lib/util/resolveCommand.js 📉 -9 B (-0.50%) 1.75 kB → 1.74 kB
home/runner/work/cli/cli/packages/nuxi/src/dev/utils.ts 📉 -294 B (-3.31%) 8.68 kB → 8.39 kB
node_modules/chokidar/esm/index.js 🔥 -28.24 kB (-100%) 28.24 kB → 0 B
node_modules/chokidar/esm/handler.js 🔥 -23.86 kB (-100%) 23.86 kB → 0 B
node_modules/readdirp/esm/index.js 🔥 -8.54 kB (-100%) 8.54 kB → 0 B
View detailed bundle breakdown

Added

Asset File Size % Changed
shared/create-nuxt.DHLweyqe.mjs 0 B → 2.02 MB (+2.02 MB) -
shared/create-nuxt.BPAteO0l.mjs 0 B → 1.17 MB (+1.17 MB) -
shared/create-nuxt.1OfhkbJ2.mjs 0 B → 963.62 kB (+963.62 kB) -
shared/create-nuxt.BTod2GyY.mjs 0 B → 108.11 kB (+108.11 kB) -
shared/create-nuxt.DMK62nL9.mjs 0 B → 18.91 kB (+18.91 kB) -
shared/create-nuxt.Z4ljCATK.mjs 0 B → 15.27 kB (+15.27 kB) -
shared/create-nuxt.CEO52ZEg.mjs 0 B → 4.07 kB (+4.07 kB) -
shared/create-nuxt.DhnKqY0f.mjs 0 B → 4.06 kB (+4.06 kB) -
shared/create-nuxt.DXe4Qtb4.mjs 0 B → 3.9 kB (+3.9 kB) -
shared/create-nuxt.IMbi9TqG.mjs 0 B → 1.05 kB (+1.05 kB) -
shared/create-nuxt.9zEjy5Xa.mjs 0 B → 836 B (+836 B) -
shared/create-nuxt.BGBb_5mi.mjs 0 B → 792 B (+792 B) -
shared/create-nuxt.BHLBA6hP.mjs 0 B → 294 B (+294 B) -

Removed

Asset File Size % Changed
shared/create-nuxt.CX3Q0i94.mjs 2.02 MB → 0 B (-2.02 MB) -100%
shared/create-nuxt.2xJbLzZy.mjs 1.17 MB → 0 B (-1.17 MB) -100%
shared/create-nuxt.DC6og8IG.mjs 963.73 kB → 0 B (-963.73 kB) -100%
shared/create-nuxt.BdjcKbH0.mjs 108.13 kB → 0 B (-108.13 kB) -100%
shared/create-nuxt.DBRJTi0i.mjs 18.91 kB → 0 B (-18.91 kB) -100%
shared/create-nuxt.7PtiE9we.mjs 15.27 kB → 0 B (-15.27 kB) -100%
shared/create-nuxt.DWHF4k3v.mjs 4.07 kB → 0 B (-4.07 kB) -100%
shared/create-nuxt.DdPxbFNP.mjs 4.06 kB → 0 B (-4.06 kB) -100%
shared/create-nuxt.CJpuxWoL.mjs 3.9 kB → 0 B (-3.9 kB) -100%
shared/create-nuxt.lSoS3Y1H.mjs 1.05 kB → 0 B (-1.05 kB) -100%
shared/create-nuxt.CANoIlAg.mjs 836 B → 0 B (-836 B) -100%
shared/create-nuxt.xXro56Jq.mjs 792 B → 0 B (-792 B) -100%
shared/create-nuxt.Bf7J5JMJ.mjs 294 B → 0 B (-294 B) -100%

Bigger

No assets were bigger

Smaller

Asset File Size % Changed
chunks/index2.mjs 255.1 kB → 194.19 kB (-60.92 kB) -23.88%
chunks/index3.mjs 71.99 kB → 71.97 kB (-27 B) -0.04%
chunks/index7.mjs 50.54 kB → 50.51 kB (-27 B) -0.05%
chunks/index6.mjs 6.25 kB → 6.24 kB (-9 B) -0.14%

Unchanged

Asset File Size % Changed
index.mjs 1.07 kB 0%
chunks/multipart-parser.mjs 5.11 kB 0%
chunks/multipart-parser2.mjs 4.58 kB 0%
chunks/add.mjs 6.89 kB 0%
chunks/analyze.mjs 3.27 kB 0%
chunks/build.mjs 1.96 kB 0%
chunks/cleanup.mjs 471 B 0%
chunks/dev-child.mjs 811 B 0%
chunks/dev.mjs 27.24 kB 0%
chunks/devtools.mjs 764 B 0%
chunks/generate.mjs 472 B 0%
chunks/info.mjs 4.38 kB 0%
chunks/index.mjs 274 B 0%
chunks/prepare.mjs 984 B 0%
chunks/preview.mjs 3.5 kB 0%
chunks/test.mjs 1.16 kB 0%
chunks/typecheck.mjs 1.78 kB 0%
chunks/upgrade.mjs 6.28 kB 0%
chunks/prompt.mjs 42.91 kB 0%
chunks/satisfies.mjs 116 B 0%
chunks/jiti.mjs 305 B 0%
chunks/add2.mjs 12.08 kB 0%
chunks/search.mjs 45.85 kB 0%
chunks/xdg-open.mjs 25.32 kB 0%
chunks/node.mjs 145.67 kB 0%
chunks/index4.mjs 1.23 kB 0%
chunks/index5.mjs 5.85 kB 0%
chunks/index8.mjs 898.9 kB 0%
shared/create-nuxt.BSm0_9Hr.mjs 107 B 0%
shared/create-nuxt.BjhZEm2-.mjs 1.75 kB 0%
shared/create-nuxt.Vk1IrVtB.mjs 26.96 kB 0%
shared/create-nuxt.4t9faemh.mjs 43.64 kB 0%

@github-actions
Copy link
Contributor

Bundle Stats — nuxi size comparison

Hey there, this message comes from a GitHub action that helps you and reviewers to understand how these changes affect the size of this project's bundle.

As this PR is updated, I'll keep you updated on how the bundle size is impacted.

Total

Files count Total bundle size % Changed
58 5.52 MB → 5.46 MB (-61.13 kB) -1.08%
Changeset
File Δ Size
node_modules/jiti/dist/babel.cjs 📉 -9 B (-0.00%) 1.82 MB → 1.82 MB
node_modules/dotenv/lib/main.js 📉 -9 B (-0.09%) 10.23 kB → 10.22 kB
node_modules/giget/dist/shared/giget.OCaTp9b-.mjs 📉 -108 B (-0.13%) 82.14 kB → 82.04 kB
node_modules/which/which.js 📉 -9 B (-0.26%) 3.36 kB → 3.35 kB
node_modules/cross-spawn/lib/parse.js 📉 -9 B (-0.28%) 3.16 kB → 3.15 kB
node_modules/cross-spawn/lib/util/resolveCommand.js 📉 -9 B (-0.50%) 1.75 kB → 1.74 kB
src/dev/utils.ts 📉 -296 B (-3.33%) 8.68 kB → 8.39 kB
node_modules/chokidar/esm/index.js 🔥 -28.24 kB (-100%) 28.24 kB → 0 B
node_modules/chokidar/esm/handler.js 🔥 -23.86 kB (-100%) 23.86 kB → 0 B
node_modules/readdirp/esm/index.js 🔥 -8.54 kB (-100%) 8.54 kB → 0 B
View detailed bundle breakdown

Added

Asset File Size % Changed
shared/nuxi.wc1-AWrO.mjs 0 B → 2.02 MB (+2.02 MB) -
shared/nuxi.BMIgfYLN.mjs 0 B → 15.26 kB (+15.26 kB) -

Removed

Asset File Size % Changed
shared/nuxi.DYaJf8O3.mjs 2.02 MB → 0 B (-2.02 MB) -100%
shared/nuxi.B6QVXBke.mjs 15.27 kB → 0 B (-15.27 kB) -100%

Bigger

No assets were bigger

Smaller

Asset File Size % Changed
chunks/index2.mjs 255.11 kB → 194.19 kB (-60.92 kB) -23.88%
chunks/init.mjs 665.99 kB → 665.88 kB (-108 B) -0.02%
dev/index.mjs 961 B → 896 B (-65 B) -6.76%
chunks/index3.mjs 71.99 kB → 71.97 kB (-27 B) -0.04%

Unchanged

Asset File Size % Changed
index.mjs 247 B 0%
chunks/add.mjs 6.89 kB 0%
chunks/analyze.mjs 3.27 kB 0%
chunks/build.mjs 1.96 kB 0%
chunks/cleanup.mjs 471 B 0%
chunks/dev-child.mjs 780 B 0%
chunks/dev.mjs 27.24 kB 0%
chunks/devtools.mjs 764 B 0%
chunks/generate.mjs 472 B 0%
chunks/info.mjs 4.38 kB 0%
chunks/index.mjs 274 B 0%
chunks/prepare.mjs 984 B 0%
chunks/preview.mjs 3.5 kB 0%
chunks/test.mjs 1.16 kB 0%
chunks/typecheck.mjs 1.78 kB 0%
chunks/upgrade.mjs 6.28 kB 0%
chunks/satisfies.mjs 116 B 0%
chunks/main.mjs 15.3 kB 0%
chunks/prompt.mjs 42.91 kB 0%
chunks/jiti.mjs 305 B 0%
chunks/multipart-parser.mjs 5.11 kB 0%
chunks/add2.mjs 12.08 kB 0%
chunks/search.mjs 45.85 kB 0%
chunks/xdg-open.mjs 25.32 kB 0%
chunks/node.mjs 145.67 kB 0%
chunks/index4.mjs 1.23 kB 0%
chunks/index5.mjs 5.85 kB 0%
chunks/multipart-parser2.mjs 4.58 kB 0%
chunks/index6.mjs 898.9 kB 0%
shared/nuxi.BLoQ2NAr.mjs 19.17 kB 0%
shared/nuxi.Dh2ZdpAd.mjs 57.22 kB 0%
shared/nuxi.CTyTlDmo.mjs 18.91 kB 0%
shared/nuxi.DHJiz6C8.mjs 792 B 0%
shared/nuxi.BtDT0y5R.mjs 294 B 0%
shared/nuxi.Cm5apyPX.mjs 2.57 kB 0%
shared/nuxi.Db0skjkt.mjs 915.23 kB 0%
shared/nuxi.D2_bzAv0.mjs 1.54 kB 0%
shared/nuxi.DtQ0anGB.mjs 4.07 kB 0%
shared/nuxi.BSm0_9Hr.mjs 107 B 0%
shared/nuxi.DMyZmNH9.mjs 836 B 0%
shared/nuxi.PB-niEBz.mjs 1.05 kB 0%
shared/nuxi.DZwsQJ6X.mjs 25.34 kB 0%
shared/nuxi.D5KtpA0t.mjs 984 B 0%
shared/nuxi.BjhZEm2-.mjs 1.75 kB 0%
shared/nuxi.CetGtQyZ.mjs 4.06 kB 0%
shared/nuxi.DU9QXUOf.mjs 26.96 kB 0%
shared/nuxi.BzZJv2UC.mjs 123.67 kB 0%
shared/nuxi.QWnQy_ku.mjs 5.75 kB 0%
shared/nuxi.DwmIiB7Y.mjs 12.8 kB 0%
shared/nuxi.Cgt_fOtO.mjs 42.33 kB 0%
shared/nuxi.Do0aYBCO.mjs 5.46 kB 0%
shared/nuxi.4t9faemh.mjs 43.64 kB 0%

@github-actions
Copy link
Contributor

Bundle Stats — nuxt-cli size comparison

Hey there, this message comes from a GitHub action that helps you and reviewers to understand how these changes affect the size of this project's bundle.

As this PR is updated, I'll keep you updated on how the bundle size is impacted.

Total

Files count Total bundle size % Changed
32 90.49 kB → 90.2 kB (-288 B) -0.31%
Changeset
File Δ Size
home/runner/work/cli/cli/packages/nuxi/src/dev/utils.ts 📉 -288 B (-3.24%) 8.67 kB → 8.39 kB
View detailed bundle breakdown

Added

No assets were added

Removed

No assets were removed

Bigger

No assets were bigger

Smaller

Asset File Size % Changed
chunks/index.mjs 11.64 kB → 11.35 kB (-288 B) -2.42%

Unchanged

Asset File Size % Changed
dev/index.mjs 0 B 0%
index.mjs 236 B 0%
chunks/analyze.mjs 3.27 kB 0%
chunks/cleanup.mjs 471 B 0%
chunks/dev-child.mjs 815 B 0%
chunks/dev.mjs 10.09 kB 0%
chunks/devtools.mjs 763 B 0%
chunks/generate.mjs 472 B 0%
chunks/build.mjs 1.96 kB 0%
chunks/info.mjs 4.39 kB 0%
chunks/index2.mjs 273 B 0%
chunks/add.mjs 10.17 kB 0%
chunks/search.mjs 2.96 kB 0%
chunks/prepare.mjs 984 B 0%
chunks/preview.mjs 3.5 kB 0%
chunks/test.mjs 1.16 kB 0%
chunks/typecheck.mjs 1.78 kB 0%
chunks/upgrade.mjs 6.28 kB 0%
chunks/init.mjs 9.85 kB 0%
chunks/add2.mjs 6.89 kB 0%
shared/cli.B9AmABr3.mjs 39 B 0%
shared/cli.Dvb-m6bf.mjs 792 B 0%
shared/cli.BEUGgaW4.mjs 294 B 0%
shared/cli.BSm0_9Hr.mjs 107 B 0%
shared/cli.At9IMXtr.mjs 1.23 kB 0%
shared/cli.pLQ0oPGc.mjs 836 B 0%
shared/cli.BrKZotr9.mjs 1.05 kB 0%
shared/cli.P0cplz3M.mjs 78 B 0%
shared/cli.jA1DRKbi.mjs 1.04 kB 0%
shared/cli.CXdkyDQW.mjs 1.79 kB 0%
shared/cli.yHMpVeHl.mjs 5.42 kB 0%

@pkg-pr-new
Copy link

pkg-pr-new bot commented Jun 14, 2025

Open in StackBlitz

npm i https://pkg.pr.new/create-nuxt@913
npm i https://pkg.pr.new/nuxi@913
npm i https://pkg.pr.new/@nuxt/cli@913

commit: b7f245c

@codspeed-hq
Copy link

codspeed-hq bot commented Jun 14, 2025

CodSpeed Performance Report

Merging #913 will degrade performances by 11.05%

Comparing perf/watch (b7f245c) with main (f2e098a)

Summary

❌ 1 regressions
✅ 1 untouched benchmarks

⚠️ Please fix the performance issues or acknowledge them on CodSpeed.

Benchmarks breakdown

Benchmark BASE HEAD Change
makes requests to dev server 88 ms 98.9 ms -11.05%

@danielroe danielroe merged commit 19ba8b0 into main Jun 14, 2025
14 checks passed
@danielroe danielroe deleted the perf/watch branch June 14, 2025 13:28
@github-actions github-actions bot mentioned this pull request Jun 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant