Nuxt 2.16.0 is the first minor release since Feb 15, 2021. The focus is mostly on releasing the latest fixes and enhancements that have been present in
nuxt-edge
for some time.
✨ Highlights
- upgrade to PostCSS 8
- default to
core-js
v3 - ... full details below
⚠️ Breaking changes
-
In this PR we only support Node 14+. This is mostly an issue for dependencies, which we need to keep updated for security reasons. Going forward until its own EOL, Nuxt 2 will only officially support Node versions that have not reached their EOL.
-
New postcss options format. See #9671 for full details.
-
Dependency upgrades. A number of dependencies have dropped support for earlier node versions.
dotenv
has changed how it parses.env
files in a number of edge cases.glob
now requires/
instead of\
on windows machines. There may also be other changes that affect your usage, so please do upgrade with care. -
Vue 2.7 upgrade. Although you can use Vue 2.7 with any release of Nuxt 2, 2.16.0 for the first time includes it as a dependency, which means that you may well encounter some issues associated with upgrading Vue 2.6 -> Vue 2.7.
This may be a good time to consider using the composition API utilities provided by https://github.com/nuxt/bridge instead, which mirror Nuxt 3's more precisely than
@nuxtjs/composition-api
. (You can opt-in to just these utilities by disabling the other bridge modules individually.)
Changelog
🚀 Enhancements
- config: Support
nuxtrc
in dist directory (#9280) - generator: Add ignoreEnv generate option during ensureBuild(cmd) (#8955)
- server: Allow disabling
serve-static
middleware (#9365) - types: Add
asyncData
return types to component instance type (#9239) - vue-app:
context.beforeSerialize
method (#9332) - vue-app: Pass
store
tocreateRouter
(#9629) - Default to
core-js
version 3 (#9987) - webpack: ⚠️ Update postcss to v8 (#9671)
🩹 Fixes
- vue-app: Respect
scroll-margin-top
when navigating with hash (#9187) - webpack: Use
javascript/auto
for js rule (#9180) - server: Unregister error event listener (#9245)
- babel-preset-app: Respect explicit options.targets for modern preset (#9337)
- types: Add nuxt.config alias type (#9424)
- vue-app: Check whether route exists within nuxt app before replacing (#9431)
- vue-renderer: Decode route path for
payload.js
(#9494) - vue-app: Don't normalise route path if it's valid (#9460)
- vue-app: Redirect to external url replaces current history entry (#9500)
- utils:
trailingSlash
causes error with dynamic nuxt-child routes (#9505) - types: Add
onNuxtLoaded
andonNuxtReady
types (#9510) - vue-app: Re-register components construtor in HMR (#9539)
- types: Add typing for
build.stats
options (#9555) - babel: Loose option for babel private-property-in-object (#9631)
- vue-app: Serialize route meta to allow functions (#9634)
- vue-app:
null
check for$root
access (#9150) - generator: Allow passing
builder
togetGenerator
(#9574) - generator: Throw an error when Builder is missing (#9663)
- vue-app: Use correct
$config
for finding basePath (#9706) - vue-renderer: Ensure custom build indicator preserves some whitespace (#9705)
- 'npm run test' fails because the last command lacks 'yarn' (#9761)
- generator: Decode path with
ufo
(#9739) - cli: Ensure nuxt instance is closed when skipping build (3e9d7e3)
- Nuxt-child-key in web-types.json (#9792)
- types: Return type of $fetch (#9854)
- deps: Update
ua-parser-js
to 1.x (#9979) - deps: Update
ya-parser-js
to latest0.7.x
(#9979) - vue-app: Call ssrContext.unsetMutationObserver only if it exists (#10132)
- webpack: Allow files with
.cjs
extension to be transpiled (#10340) - vue-app: Preview mode fetch (#10489)
- webpack: Resolve
.wasm
extension with lower priority (#10676) - vue-app: Clear hide timeout when calling
clear()
(#10086)
📦 Build
🌊 Types
- Add
prefetchPayloads
to router options (#9715)
🏡 Chore
- release: V2.15.6 (a53fd32)
- pkg: Build for es2019 target (#9328)
- types: Add types for new
false
option forrender.static
(#9372) - Update error tests (d4e5998)
- test: Revert jest and babel-jest to 26 (#9377)
- Ignore audit 1754,1755 (39f7859)
- Fix vetur extension syntax for GitPod (#9572)
- Ignore globby > 12 upgrade as needs native esm (e0968a3)
- Update rollup plugins (5614399)
- Fix code formatting (17bbb21)
- utils: Improve
stripWhitespace
utility (#9668) - Update license year to present (#9682)
- Add separate file with security disclosure info (#9738)
- Update logo (#9796)
- doc: Fix link to contribution guide (#9815)
- test: Fix external redirect link (#9816)
- Update funding.yml (1f85137)
- Update lockfile (7614360)
- Update audit list (6f73c36)
- Update lockfile and audit (1878b26)
- Update issue template with nuxt 3 (#9948)
- Enable blank issues (54542c1)
- radme: Fix browserstack and saucelabs icons (#10068)
- Update dependencies (#10510)
- Update repo (773d292)
- Ignore vue and vuex major updates (bafc814)
- Update README.md (#10831)
- Update pull request template (0db7e7b)
- Update issue templates (f36fb9c)
- Rename 2.x bug template (ba966cf)
- Move nuxt 2 report to bottom (ce7b1a9)
- Bump
ua-parser-js
version (1cedad5) - Bump test/dev dependencies (#18672)
- Upgrade unjs dependencies (#18670)
- Use named export from
defu
(#18679)
✅ Tests
🤖 CI
⚠️ Breaking Changes
- webpack: ⚠️ Update postcss to v8 (#9671)
❤️ Contributors
- Xin Du (Clark) clark.duxin@gmail.com
- Daniel Roe daniel@roe.dev
- Arik
- Bot08
- Pooya Parsa pooya@pi0.io
- Yuyao Nie nieyuyao0826@hotmail.com
- Sébastien Chopin seb@nuxtjs.com
- Clément Ollivier clement.o2p@gmail.com
- Michiel Doesburg
- Rafał Chłodnicki rchl2k@gmail.com
- Abdfn
- K-utsumi
- Matteo Rigon matteo.rigon7@gmail.com
- Mehmet
- Thibault Vlacich thibault.vlacich@gmail.com
- Jon-ht jonathan.huteau15@gmail.com
- Ahmadou Waly NDIAYE ahmadouwalyndiaye@gmail.com
- Daniil Okhlopkov
- Aewshyae
- Michał Kędrzyński kedrzu@gmail.com
- Mrazauskas
- Loick Le Digabel loick.ledigabel@gmail.com
- Payel Karmakar
- SlayerOfTheBad
- Ofer Shaal ofer@3paces.com
- Mohammad Saleh Fadaei
- Andrew Luca thendrluca@gmail.com
- David Ovčačík david.ovcacik@gmail.com
- Carbotaniuman
- William L'Archeveque william.larcheveque@gmail.com
- Matthieu Sieben