1.0.0 is out! 🎉
It's been a long run and we are really proud to announce the official 1.0 release. Thank you so much for your support and we are looking forward to hear your feedback ❤️
Medium article: https://medium.com/@nuxt_js/nuxt-js-1-0-is-out-bab1af459972
Breaking changes
⚠️ Minimum Node.js version required for Nuxt.js is also increased to 8.0.0 (Current LTS). This allows notable security and performance improvements for both Nuxt and SSR rendering by using native async/awaits and making development easier. So don't forget to upgrade Node to the latest version in both server and your local environment ;)
We have a new internal hook system now, some modules can be broken with 1.0 if they were relying on this.nuxt.plugin()
, instead, they will have to use this.hook()
, see module hooks documentation.
We removed the internal extensions for .ts
, if you want to use TypeScript into Nuxt.js, we recommend you to check out our typescript example.
Deprecation
For the below depreciation, it will still work but you will get a warning to tell you to change your code to the new value.
For better bundling experience for server-side and client-side, we deprecated context.isClient
and context.isServer
in flavor of process.client
and process.server
. Since these variables comes from our webpack configuration, it will optimize your client-side and server-side bundles magically 💅
We also deprecated dev
property inside build.extend()
in flavour of isDev
.
Features
- We are now ignoring files starting with a
-
in front of its filename (example:pages/-ignored.vue
) (PR #2417) - Layout transitions #1620
- Add
route.meta
(array of matched page.meta
) into context, useful for middleware (see details) - Middleware: you can now define middleware as a function, see example
- Store: you now have access to
this.$router
andthis.app
inside your store actions! - You can set
body: true
, in yourhead.script[]
to move your scripts at the end of<body>
(see example) nuxt generate --no-build
: Useful for conditions when just dynamic routes are being changed. This makes incremental builds much faster.- Hooks: you can extend even further Nuxt by using hooks now, the documentation is coming soon.
- New configuration: build.styleResources, check out our style-resources example.
Improvements
- Upgrade Vue to 2.5.x #1723 #1868
- Upgrade to Vue-Router & Vuex to 3.0
- No more babel warning #1698
- Adds support for folders in /layouts #1865
- Mode
spa
: Respect mounted hook on first render (fix #1629) - Add
--version
&-v
flag tonuxt
binary (you can donpx nuxt -v
to know which version of nuxt.js you are using in your project) #1840 - Improve error message when a plugin is not found #1846
- Add
ENV
variable intoapp.html
, corresponds toenv
from yournuxt.config.js
- Context is shared across plugins and pages (useful for axios interceptor with
redirect
), it also improves perfs! - Improved plugins system
- Better
nuxt dev
experience with faster and more stable reloads - SSR performance improvements thanks to node async/awaits
- Allow redirects to external URL (#2265)
- Support
options.modulesDir
as Array - Upgraded uglifyjs with parrallel options as default for faster builds
Fixes
- Fix error handler if error message is readonly #1673
- Fix code typos #1613
- Update
.gitignore
#1860 - Generate: don't assume
/index.html
exists when copying to 200.html #1937 head.titleTemplate
with function is now working (fix #1886)- Fix nuxt-start dependencies
- Fix Memory leak with
inject
: #1695 (comment) - Fix unexpected state resetting on nested views (fix #1408 via #1914)
- Fix layouts in SPA mode (#1929)
- Fix video
src
in templates (fix #2008 via #2016) - Improve Webpack rebuilding without reason (6dfe660)
- Update
no-ssr
to v0.2.1 #2181