Releases: nuxt/cli
v3.28.0
3.28.0 is the next minor release.
👉 Changelog
🚀 Enhancements
- init: Add
--nightly
flag (#650)
🩹 Fixes
- dev: Handle array of dotenv file names (73888d3)
- init: Use amended directory when adding modules (#998)
- init: Skip modules that are dependencies of the selected template (#910)
- init: Default nightly install to
latest
(6b80c59) - dev: End websocket connections gracefully (#1001)
- upgrade: Do not use cache when getting nuxt version (#1002)
🏡 Chore
- Import
join
(e61d334)
🤖 CI
- Run size compare workflow on
pull_request_target
(#999)
❤️ Contributors
- Daniel Roe (@danielroe)
- Damian Głowala (@DamianGlowala)
- Hugo Richard (@HugoRCD)
- Aaron Dewes (@AaronDewes)
v3.27.0
3.27.0 is the next minor release.
Timetable: to be announced.
👉 Changelog
🚀 Enhancements
- Add
-e
alias for--extends
(#986)
🩹 Fixes
❤️ Contributors
- Daniel Roe (@danielroe)
- Sébastien Chopin (@atinux)
- Agénor Debriat (@agenordebriat)
v3.26.4
3.26.4 is the next patch release.
Timetable: to be announced.
👉 Changelog
🩹 Fixes
❤️ Contributors
- Daniel Roe (@danielroe)
v3.26.3
3.26.3 is the next patch release.
👉 Changelog
🩹 Fixes
- dev: Only close config watchers when process exits (#971)
- dev: Call close watchers when cleaning up init (#972)
- dev: Work around rollup build bug (ef541a6)
- dev: Expose port/host to
options.devServer
(#970) - dev: Use
get-port-please
to handle socket paths (#973) - dev: Use 'SIGTERM' to kill process on deno (#974)
🤖 CI
- Do not fail fast in matrix (fc146d1)
❤️ Contributors
- Daniel Roe (@danielroe)
v3.26.2
3.26.2 is the next patch release.
Timetable: to be announced.
👉 Changelog
🩹 Fixes
- Update default template name to
v4
(beb7fb4)
❤️ Contributors
- Daniel Roe (@danielroe)
v3.26.1
3.26.1 is the next patch release.
Timetable: to be announced.
👉 Changelog
🩹 Fixes
- dev: Temporarily refactor to use previous socket url handling (#957)
💅 Refactors
- Simplify
formatSocketURL
logic (11330aa)
❤️ Contributors
- Daniel Roe (@danielroe)
v3.26.0
3.26.0 is the next minor release.
👀 Highlights
Nuxt CLI v3.26 focuses on performance with faster cold starts, intelligent caching, and architectural improvements that prepare the foundation for Nuxt v4. I very much hope it will make your dev workflow noticeably faster and more responsive.
I'm hoping to write up a little bit more about how we did this, but the key changes include:
🚀 Faster Development Server
Starting your Nuxt development server is now significantly faster. We've optimized the initialization sequence to prioritize critical operations and reduce startup time, especially noticeable in larger projects (#902).
🔥 Node.js Compile Cache
The Node.js compile cache is now enabled automatically when supported, providing up to 3x faster startup times for subsequent CLI operations (#911).
# first run: normal CLI load time
nuxt build
# ⚡ cached load
nuxt build
The CLI automatically detects support and falls back gracefully when not available. (You can also set NODE_DISABLE_COMPILE_CACHE=1
to disable it.)
📁 Native File Watching
File watching now uses native fs.watch
APIs for watching configuration files, .env
, and the dist
directory. This provides faster feedback and uses fewer system resources (#913).
🔌 Socket-Based Development Proxy
The Nuxt dev server uses an internal connection between the host/port that the CLI starts, and the actual dev server. Previously, we used an internal TCP/IP network port, which had extra overhead, particularly on Windows machines. Now, where supported (currently Nuxt v4 only), we use a socket (#921).
You can also test this with Nuxt v3 by setting the NUXT_SOCKET
environment variable, but until v3.18 is released, this may actually slow down your dev server as the current Nuxt v3 vite-node
dev server does not support sockets and will fall back to the public network interface.
⚡ Faster TypeScript Support
TypeScript resolution now happens in parallel with Nuxt type preparation, reducing nuxt typecheck
times. The CLI also supports TypeScript project references, making it easier to work with monorepos (this also prepares for enhanced TypeScript integration in Nuxt v4) (#928).
🛠️ Layer Support with --extends
Create new Nuxt projects that extend existing layers with the new --extends
option (#933):
nuxt dev --extends @my-org/nuxt-layer my-project
It's advised instead to include the layer you extend in your nuxt.config
file but this can be considered an escape hatch for situations where this is not possible.
🎯 Better Module Management
The nuxt init
command now provides a cleaner module selection experience. Modules that are dependencies of other modules are automatically hidden, and you can skip module selection entirely with --no-modules
.
We plan to improve this further in the next release with #910.
🔧 Stability Improvements
This release comes with plenty of bug fixes, of course, as well as prioritising the version of @nuxt/kit
actually used by the version of Nuxt you have installed. (This should fix some edge cases issues where the CLI was using a different version of @nuxt/kit
than Nuxt itself.)
👉 Changelog
🚀 Enhancements
- dev: Add debug timing log (9d4da0b)
- typecheck: Support ts projects (#928)
- Add --extends option to allow extending nuxt layers (#933)
🔥 Performance
- dev: Improve cold start of dev server (#902)
- Enable node compile cache (#911)
- dev: Use native fs.watch to watch dist, config and .env (#913)
- typecheck: Resolve typescript alongside preparing nuxt types (b3229ed)
- dev: Use socket to proxy connections to dev server (#921)
- dev: Use exsolve to resolve + import legacy loading template (#936)
🩹 Fixes
- init: Allow skipping modules prompt with --no-modules (#888)
- init: Ask before showing modules selector (#895)
- init: Skip modules that are dependencies of other modules (#879)
- module: Fix parsing bug for .npmrc files with comments (#881)
- Correctly polyfill globalThis.crypto (29ddb60)
- dev: Always create dist dir before watching it (cafc1ad)
- Prioritise @nuxt/kit from nuxt dependencies (#929)
- dev: Avoid recursive fs watching (2fc475b)
- dev: Set xfwd headers (#931)
- Only set NODE_COMPILE_CACHE if cache can be enabled (a4827d2)
- dev: Ensure we listen on port if _PORT is set (#940)
- typecheck: Proxy overrides to loadNuxt (#942)
- dev: Handle undefined process.title (#946)
- dev: Don't use sockets if provider is stackblitz (#949)
💅 Refactors
- dev: Directly emit address (+ type server) (f2e098a)
- dev: Use get-port-please to produce socket addresses (#952)
🏡 Chore
- Fix broken lockfile (cbd3cdb)
- Add script to test nuxt-cli (c307faa)
- Remove stray symbolic links (78331cb)
- De-dupe nuxt dependency (#905)
- Move playground/ to root (#917)
- Skip non-existent authors (29d45b3)
- Use fetch api (599c4d2)
- Update dev container (4fc6d69)
✅ Tests
- Switch from deprecated vitest syntax (b6553eb)
- Add dev server benchmarks (#901)
- Accurately benchmark forked mode (#903)
- Close servers (#904)
- Add additional e2e command tests (#935)
🤖 CI
- Run tests on macos as well (3ff4670)
- Run tests against node 20 (b77626a)
- Remove forced corepack installation (7fa1adc)
❤️ Contributors
- Daniel Roe (@danielroe)
- Robin (@OrbisK)
- FLY123 (@akfakf0509)
- Benjamin Canac (@benjamincanac)
- Sanjay S (@sanjayy-gowdaa)
- Odan (@odanado)
- Hugo Richard (@HugoRCD)
- Matej Černý (@cernymatej)
- James Garbutt (@43081j)
- Connor Pearson (@cjpearson)
v3.26.0-rc.3
🩹 Fixes
- dev: Ensure we listen on port if _PORT is set (#940)
❤️ Contributors
- Daniel Roe (@danielroe)
v3.26.0-rc.2
🔥 Performance
- typecheck: Resolve typescript alongside preparing nuxt types (b3229ed)
- dev: Use socket to proxy connections to dev server (#921)
- dev: Use exsolve to resolve + import legacy loading template (#936)
🩹 Fixes
- dev: Avoid recursive fs watching (2fc475b)
- dev: Set xfwd headers (#931)
- Only set NODE_COMPILE_CACHE if cache can be enabled (a4827d2)
🏡 Chore
✅ Tests
- Add additional e2e command tests (#935)
❤️ Contributors
- Daniel Roe (@danielroe)
v3.26.0-rc.1
🚀 Enhancements
🔥 Performance
- dev: Improve cold start of dev server (#902)
- Enable node compile cache (#911)
- dev: Use native fs.watch to watch dist, config and .env (#913)
🩹 Fixes
- init: Allow skipping modules prompt with --no-modules (#888)
- init: Ask before showing modules selector (#895)
- init: Skip modules that are dependencies of other modules (#879)
- module: Fix parsing bug for .npmrc files with comments (#881)
- Correctly polyfill globalThis.crypto (29ddb60)
- dev: Always create dist dir before watching it (cafc1ad)
- Prioritise @nuxt/kit from nuxt dependencies (#929)
💅 Refactors
- dev: Directly emit address (+ type server) (f2e098a)
🏡 Chore
- Fix broken lockfile (cbd3cdb)
- Add script to test nuxt-cli (c307faa)
- Remove stray symbolic links (78331cb)
- De-dupe nuxt dependency (#905)
- Move playground/ to root (#917)
✅ Tests
- Switch from deprecated vitest syntax (b6553eb)
- Add dev server benchmarks (#901)
- Accurately benchmark forked mode (#903)
- Close servers (#904)
🤖 CI
- Run tests on macos as well (3ff4670)
- Run tests against node 20 (b77626a)
- Remove forced corepack installation (7fa1adc)
❤️ Contributors
- Daniel Roe (@danielroe)
- Odan (@odanado)
- Hugo Richard (@HugoRCD)
- Matej Černý (@cernymatej)
- James Garbutt (@43081j)
- Connor Pearson (@cjpearson)