@Atinux Atinux released this Jan 8, 2018 · 1119 commits to dev since this release

Assets 2

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 and this.app inside your store actions!
  • You can set body: true, in your head.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 to nuxt binary (you can do npx 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 into app.html, corresponds to env from your nuxt.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