Skip to content

@pi0 pi0 released this May 14, 2019

Fixes

  • builder: use warn only for mismatched dependencies (#5723)
  • webpack: correctly resolve consola for the client bundle (#5729)

Dependency Upgrades

Thanks to

Assets 2

@pi0 pi0 released this May 14, 2019 · 23 commits to dev since this release

DX Improvements 💅

SSR logs in your browser 🖥️

We all know the console.log debugging method, but when working with universal applications, you have to remember that sometimes, your logs are in your terminal and not in your browser console.

This can be really annoying when developing a Nuxt.js application, starting with this version and running nuxt dev, the ssr logs are now reported to your browser console:

nuxt-logs-ssr

Detecting store/ creation 👀

Nuxt.js now detects when you created a store/ directory and will reload himself auto-magically so you don't have to restart it anymore.

nuxt-store-watch

PS: We also improved the serverMiddleware watch to restart Nuxt.js and clean their cache

Fixes ✔️

  • builder: corretly detect mode of hashed plugins (#5695)
  • builder: call watch:restart after watch:fileChanged hook (#5620)
  • utils: node v8 not support dotAll in regex (#5608)
  • vue-app: properly catch component loading error (#5687) (#5688) (#5690)
  • vue-app: consider watchQuery option in routerViewKey (#5516)
  • vue-renderer: await on spa:templateParams hook (#5619)
  • webpack: set log level to warn for HardSourcePlugin (#5653)
  • vue-app: properly catch loading error in component prefetching (#5688) (#5690)
  • vue-app: avoid using aliases in templates (#5656)
  • builder: watch store dir and serverMiddleware paths (#5681)

Features 🚀

  • vue-app: rename transition to pageTransition and deprecate it (#5558)
  • vue-renderer/vue-app: report SSR console logs to the browser with consola (#5673)
  • webpack: suppress not found typescript warnings (#5635)
  • webpack: extendable babel.presets and babel envName (#5637)
  • configurable aliases (#5655)

Refactors 🧹

  • server: exclude dist files request from browser detection (#5571)
  • vue-renderer: remove chalk in renderer (#5609)
  • vue-renderer: split renderer into ssr, spa and modern (#5559)
  • move modern detection from server to utils (#5584)

Examples 📚

  • auth-routes: fix typo (#5651)
  • babel-preset-app: add core-js@3 example in the readme (#5633)
  • docker: fix Dockerfile casing (#5705)

Typescript 👷

Only for typescript users, Nuxt.js v2.7 dropped support for node < 8.6 relate to ts-loader v6

  • add babel config types (#5666)
  • upgrade ts-loader to v6 (#5691)
  • fix context.app type (#5701)
  • fix extendRoutes method type (#5700)
  • prevent ts-node to register twice (#5699)

Thanks to 🙏

Assets 2

@pi0 pi0 released this Apr 25, 2019 · 102 commits to dev since this release

Fixes

  • cli: Watch and reload nuxt.config (#5574)
  • utils: serialize inline functions (#5051) (#5580)
  • vue-app: Fix context req and res types (#5560)
  • webpack: Fix production font preloading (#5436)
  • Don't customize esm options (91c3642)

Dependency Upgrades

  • Update webpackbar to ^3.2.0
  • Update vue-router to ^3.0.6
  • Update @nuxt/loading-screen to ^0.5.0
Assets 2

@pi0 pi0 released this Apr 21, 2019 · 103 commits to dev since this release

Fixes

  • cli: Apply nuxt.config.js changes and watch for all imported files (#5500)
  • cli: Fix problem for users that have tsconfig.json but do not use typescript (#5478)
  • cli: Show memory usage after build for nuxt dev (#5514)
  • server Fix bug with SPA mode with CSP enabled (#5474)
  • vue-renderer: Use modulepreload for modern mode when using spa generate (#5489)
  • webpack: Suggest using official @nuxtjs/style-resources package (#5499)
  • Custom router.base support for banner url and loading screen (#5470) (nuxt/loading-screen#8)

Security Fixes

Thanks to our awesome contributors to this release

Assets 2
Apr 4, 2019

@pi0 pi0 released this Apr 4, 2019 · 143 commits to dev since this release

Migration Guide

This version is addressing most of the problems of 2.5 and is without any breaking changes. For most of the users, a normal version upgrade would be enough. However, reading this guide can help to have a smooth upgrade.

General Tips

  • Using yarn as the package manager is more preferred as Nuxt is internally being tested against yarn
  • Before upgrade ensure to remove yarn.lock, package-lock.json and node_modules
  • After full install and testing, also consider upgrading other dependencies. The yarn outdated command can be used.

Missing App Dependencies

Because of how package managers (yarn, npm) work, a wrong version of a dependency from one of the other dependencies may be hoisted into node_modules. Nuxt is strict about this and provides instructions for dependency resolution so please follow it.

The well-known problem is with firebase package that requires to manually install node-fetch dependency in your project.

Reverting breaking changes

We accidentially introduced a change that broke the prod build for many people who are using Nuxt programatically. This has been resolved through #5413. Sorry for the inconveniences!

Core-js

Since core-js@2 and core-js@3 are both supported from babel 7.4.0, Starting from 2.6 Nuxt supports both versions (#5411). It is highly advised to stick with 2 (default) unless having a special dependency that needs 3. (Instructions for core-js@2 are not required but recommended)

core-js@2

  • yarn: yarn add -D core-js@2 @babel/runtime-corejs2
  • npm: npm i -D core-js@2 @babel/runtime-corejs2

core-js@3

  • yarn: yarn add -D core-js@3 @babel/runtime-corejs3
  • npm: npm i -D core-js@3 @babel/runtime-corejs3

Edit nuxt.config.js:

export default {
  build: {
    babel: {
      presets({ isServer }) {
        return [
          [
            require.resolve('@nuxt/babel-preset-app'),
            // require.resolve('@nuxt/babel-preset-app-edge'), // For nuxt-edge users
            {
              buildTarget: isServer ? 'server' : 'client',
              corejs: { version: 3 }
            }
          ]
        ]
      }
    }
  }
}

Typescript

Nuxt 2.5 users may only require to add ts-node to the dependencies

Beta Testers : Replace nuxt by nuxt-edge, and @nuxt/typescript by @nuxt/typescript-edge in the following instructions.

  1. Remove nuxt-ts dependency (2.4 users only)
    • yarn: yarn remove nuxt-ts
    • npm: npm remove nuxt-ts
  2. Add nuxt and ts-node to dependencies:
    • yarn: yarn add nuxt ts-node
    • npm: npm i nuxt ts-node
  3. Add @nuxt/typescript to devDependencies:
    • yarn: yarn add -D @nuxt/typescript
    • npm: npm i -D @nuxt/typescript
  4. Create an empty tsconfig.json file. Nuxt will automatically generate it with defaults at first run, then you can edit it to fit your needs

Features

  • feat(babel-preset-app): support specifying core-js version (#5411) (Xin Du (Clark)) (159123f)
  • feat(cli): add internal _generate and _build options (#5434) (Pooya Parsa) (516aea3)
  • feat(cli): add --quiet option to nuxt generate command (#5357) (Franck Abgrall) (91f4eb0)
  • feat(typescript): detect typescript based on tsconfig.json (#5412) (Pooya Parsa) (6ffc5c5)
  • feat(vue-renderer): add csp meta tags (#5354) (James George) (b978a37)

Fixes

  • fix: unexpected token export in importing babel runtime helper (#5401) (ryota yamamoto) (3b85dd9)
  • fix(core): call ready to prevent breaking changes (Pooya Parsa) (#5413) (001ba77)
  • fix(build): disable loading babel.config.js by default (#5365) (Xin Du (Clark)) (64fa424)
  • fix(builder): await for renderer to load resources (#5341) (Pooya Parsa) (caf5198)
  • fix(cli): catch all possible errors thrown from proper-filelock (#5347) (Pim) (39bbe46)
  • fix(renderer): retry render if renderer is in loading or created state (#5417) (Pooya Parsa) (8b99695)
  • fix(vue-app): decode uri in getlocation (#5337) (Johan Roxendal) (77dcfe6)
  • fix(vue-app): prevent mounting page twice on redirect (#5361) (noe132) (2d73e8a)
  • fix(vue-renderer): add the csp hash if unsafe-inline hasn't been specified (#5387) (Sam Bowler) (97db6a4)
  • fix(types): add type definition for typescript.typeCheck (#5326) (Daniel Roe) (2c1444d)

Refactors

  • refactor(typescript): only generate tsconfig.json if missing (#5356) (#5367) (Kevin Marrec) (9a3fc8a)
  • refactor(vue-renderer): improve ready status error (#5339) (Pooya Parsa) (535327c)
  • refactor(webpack): add ability to get webpack config class (#5378) (Damian Stasik) (abf7db1)

Examples

  • examples: add docker example (#5430) (Utkarsh Gupta) (3eec115)
  • examples(vue-apollo): update to @nuxtjs/apollo 4.x (#5345) (Dmitry Molotkov) (95f2a12)
  • examples(with-buefy): update example (#5348) (Dmitry Molotkov) (ce66a8c)
  • examples(with-element-ui): fix package scripts (#5349) (Dmitry Molotkov) (10812e3)

Chore

  • chore(postcss): deprecate config support (#5419) (Alexander Lichter) (1bd4fb1)
  • chore(readme): fix grammar (#5395) (Irvin Lin) (f8d3626)

Dependency Upgrades

Assets 2

@pi0 pi0 released this Mar 21, 2019 · 194 commits to 2.x since this release

Bug Fixes

  • fix: revert to corejs@2 (#5317) (Pooya Parsa) (20836d9)
  • fix: remove consola.debug for hooks (#5318) (Thomas Reichling) (9ff01f9)
  • fix: apply default lock options before setting lock (#5320) (Pim) (7c24280)
  • fix(ts): wrong export used in render.d.ts (#5309) (Romain Lanz) (e67b298)
  • examples: upgrade and fix typescript configuration files (#5310) (Romain Lanz) (7100a2c)
  • chore: unsupport nuxt-legacy (pooya parsa) (797a4ce)
Assets 2

@Atinux Atinux released this Mar 21, 2019 · 228 commits to dev since this release

15,000 line changes with 230 squashed commits by more than 30 contributors made this version possible! ❤️

What's new?

Typescript DX

No longer needed to install nuxt-ts for typescript support. Nuxt.js officially supports TS by installing @nuxt/typescript. Please see #5079 for reasons behind such migration.

Babel

Babel 7.4, Core-js v3, and Object.assign polyfill for better browser support.

Stability

More than 30 fixes, refactors and performance improvements.

Open in Browser

Use nuxt dev -o to instantly open project in the browser and enjoy a cool loading screen:

nuxt-loading-screen

.nuxtignore

Before v2.5, you were able to ignore files through an ignore prefix. As using the prefix over and over, ignoring files (and implementing custom structures) was a bit tedious on the long run. We came up with something more sophisticated: A .nuxtignore file. Following the same specs as a .eslintignore or a .gitignore file, you can now define what files or folders to ignore through a .nuxtignore file in your project root.

Examples and more info in the .nuxtignore docs

[IMPORTANT] Migration Guide

Lock Files

For a clean upgrade, please remove yarn.lock / package-lock.json file from your project before upgrade.

Programmatic API / Middleware

If not already done, please explicitly call nuxt.ready() after new Nuxt(). nuxt.ready() was always async, but not awaiting the function call has now a severe impact.

   const nuxt = new Nuxt(config)
++ await nuxt.ready()

TypeScript

  1. Please replace nuxt-ts dependency and use nuxt + @nuxt/typescript. (Also nuxt-ts-edge to nuxt-edge + @nuxt/typescript-edge for edge users)
{
--  "nuxt-ts": "^2.4.2"
++  "@nuxt/typescript": "^2.5.0"
++  "nuxt": "^2.5.0"
}
  1. Configuration API to customize/disable type checking has been moved from build.useForkTsChecker to build.typescript.typeCheck. Please see #5079 for more details.
build: {
-- useForkTsChecker: false // or ForkTsChecker options
++ typescript : {
++   typeCheck: false // or ForkTsChecker options
++ }
}

Features

  • feat(babel): include es6.object.assign by default (Clark Du) (52fe145)
  • feat(cli): lock project during build or generate (#4985) (Pim) (4e51723)
  • feat(cli): option to open the project in the browser (#4930) (Ricardo Gobbo de Souza) (4c7bd9c)
  • feat(generate): return non-zero code or page error (fixes #4991) (#5195) (Jarek Lipski) (c6565c9)
  • feat(module): support src as a function in addModule (#4956) (Ricardo Gobbo de Souza) (1e9eb4b)
  • feat: support .nuxtignore (#4647) (Xin Du (Clark)) (59be77a)
  • feat: support devModules option (#5102) (Jonas Galvez) (e87711c)
  • feat(ts): nuxt configuration typedefs (#4854) (Kevin Marrec) (92f81e0)
  • feat(vue-app): universal fetch (#5028) (Pooya Parsa) (2015140)
  • feat(vue-renderer): improvements (#4722) (Pooya Parsa) (2929716)
  • feat(vue-renderer): use async fs (#5186) (Pooya Parsa) (d07aefa)
  • feat(ts): better DX for typescript support (#5079) (Kevin Marrec) (920f444)
  • feat: loading screen (#5251) (Sébastien Chopin, Pooya Parsa) (ef41e20)
  • feat: support core-js 3 (#5291) (Xin Du (Clark)) (d094c4a)

Fixes

  • fix(builder, vue-app): order of plugin execution based on order in array (#5163) (Dmitry Molotkov) (a867dbd)
  • fix: correct public path in generation and start (#5202) (Xin Du (Clark)) (648062c)
  • fix: default for-exit to false to prevent dev exit (pooya parsa) (a347ef9)
  • fix: disable "analyze" for nuxt generate (#4975) (Alexander Lichter) (574a2eb)
  • fix: disable parallel build when extractCSS is enabled (Clark Du) (aad46ed)
  • fix: extra properties in templateFiles (#4925) (Xin Du (Clark)) (ca19124)
  • fix: fix non standard esm modifications (pooya parsa) (fb87a55)
  • fix: generate failure (#5007) (Andrey Shertsinger) (bcd672f)
  • fix: keep-alive component data should not be updated (#5188) (Xin Du (Clark)) (1ea8661)
  • fix: not send Server-Timing header if no timing info (Clark Du) (d9a0b5f)
  • fix(postcss): default to preset-env and cssnano last (#5215) (Alexander Lichter) (adf423a)
  • fix: publicPath is not reactive in dev restarting (#5227) (Xin Du (Clark)) (1fb7538)
  • fix: refactor file watchers (chokidar/linux workaround) (#4950) (Pim) (5ec5932)
  • fix: remove cache-loader for external resources (#4915) (Xin Du (Clark)) (0223e56)
  • fix: respect namespaced in store module (#5189) (Xin Du (Clark)) (9e1ef88)
  • fix: revert templatFiles name (#4924) (Xin Du (Clark)) (f70645e)
  • fix: trailing comma in tsconfig (#5061) (Sergey Vikulov) (1fb44d9)
  • fix(ts): deprecate isClient, isServer, isStatic (#5211) (Daniel Hritzkiv) (29c3c42)
  • fix(types): reflect chainlable NuxtLoading methods (#5104) (Matjaž Lipuš) (66273f4)
  • fix: Unexpected token .... Expected a property name in Safari (Clark Du) (eef7f69)
  • fix(vua-app): clone mount error to prevent mutating read-only error object (#5214) (Alexander Lichter) (37006f6)
  • fix(vue-app): avoid css chunk error (#5173) (Yutaka Sasaki) (41028a4)
  • fix(webpack): clone config.entry (fixes #4849) (#5236) (Julien Dargelos) (8216765)
  • fix: disable extract-css-chunks-webpack-plugin in dev mode (#4888) (Xin Du (Clark)) (928a230)
  • fix(server): handle decodeURI error (#5243) (phof) (5b7f6d7)
  • fix: correct socket address in use error message (Clark Du) (2eb1965)
  • fix(utils): relax lock settings (#5280) (Pim) (65a431d)
  • fix(vue-app): multiple named views cause invalid syntax (#5262) (Michael Leaney) (d03a61b)
  • fix(webpack): loaders in extend config is broken (#5292) (Xin Du (Clark)) (0eb5ed9)
  • fix(vue-app): duplicated router.base when using context.redirect(object) (#5290) (Nianyong) (cf02e82)
  • fix(vue-app): decode router base to support unicode characters (#5297) (Alexander Lichter) (3ac01df)

Performance Improvements

  • perf: await routeData promises in parallel (#5027) (Alexander Lichter) (0826d7e)
  • perf(core): skip esm for node_modules and non .js files (#5220) (Pooya Parsa) (aabb1f6)
  • perf(webpack): use futureEmitAssets (#5003) (Alexander Lichter) (3997d50)
  • perf(ts): transpileOnly when using nuxt-ts start (#4906) (Kevin Marrec) (17cc12f)

Examples

  • examples(jest-puppeteer): fix package .json (#4997) (Andrew Cravenho) (dfc8dd5)
  • examples: improve vuex store example (#5017) (Alexander Lichter) (a9511e5)
  • examples(pug): fix example by adding plain-pug-loader (#5223) (Paul Geisler) (320a46f)
  • examples(vuex-store): change to module store (#4923) (Alexander Lichter) (be41ae1)
  • examples: add pug-stylus-coffee (#4927) (chiboreache) (6d05969)
  • examples: add tsx example (#4855) (andoshin11) (5101dc6)
  • examples: fix jest test dependencies (#5155) (Dmitry Molotkov) (1c3761a)
  • examples: fix links to vue-meta repo (#5018) (Pim) (06f4762)
  • examples: rebase on latest stable nuxt version (#4874) (Alexander Lichter) (47898fb)
  • examples: zero-downtime pm2 typescript example (#4907) (Dmytro) (1fb9af3)
  • examples: fix dynamic components example (#5294) (Dmitry Molotkov) (d9db45c)

Refactors

  • refactor: generate routes and template files in builder (#4883) (Xin Du (Clark)) (4c5a59e)
  • refactor: improve modern middleware and spa modern rendering (#5037) (Xin Du (Clark)) (05299d6)
  • refactor: isModernBrowser return boolean for avoiding duplicate call (Clark Du) (c6d8e8f)
  • refactor: not detect modern browser if modern mode is disabled (Clark Du) (2b4d79c)
  • refactor: remove builder coupling from server (#5157) (Pooya Parsa) (13cb0f7)
  • refactor: remove unnecessary onEmit in old webpack (Clark Du) (eac6d02)
  • refactor: some small stuff (#4979) (Alexander Lichter) (69dfd84)
  • refactor: fix typos (#4922) (Alexander Lichter) (569b6aa)
  • refactor: unify context in webpack module (#5054) (Xin Du (Clark)) (9860eb6)
  • refactor: use spread syntax for plugin push (#4976) (Alexander Lichter) (31cb187)
  • refactor: fallback to babel-preset-env defualt targets when buildTarget is not specified (Clark Du) (176641f)
  • refactor(ts): add warning for nuxt-ts deprecation (#5301) (Kevin Marrec) (a11afd4)

Chore

  • chore(babel-preset): create readme with basic docs (#5127) (HG) (04cdd60)
  • chore: don`t ignore .nuxtignore (#5169) (Dmitry Molotkov) (39c9ab5)
  • chore: enable yarn.lock maintenance (#5063) (Xin Du (Clark)) (17b53eb)
  • chore(vue-app): suppress deprecated warning for classic vuex in prod (#5137) (Shingo Sato) (f39205a)

Tests

  • test: add await for promisable expect (Clark Du) (fabf1c0)
  • test: add chrome detector (#4984) (Xin Du (Clark)) (855705b)
  • test: add describe.posix and win (Clark Du) (e9ba2f9)
  • test: fix macos e2e tests (Pooya Parsa) (2c763df)
  • test: improve nuxt-loading component tests (#5005) (Pim) (75a7454)
  • test: mock enquirer in typescript tests (#5025) (Pim) (ad6a8cd)
  • test: skip reqest in dev test for now (Clark Du) (3e67879)
  • test: try to fix unhandled request (Clark Du) (2f2baac)
  • test: turn off cli dev test (Clark Du) (5c053f5)
  • test: unit tests for generator (#4857) (Xin Du (Clark)) (e22a282)
  • test: unit tests for @nuxt/util (#4880) (Xin Du (Clark)) (96bab9f)
  • test: unit tests for server module (#5154) (Xin Du (Clark)) (cc573a4)
  • test: update cli snapshot (Clark Du) (3dd1a28)
  • test: unhandled open handles (Clark Du) (858c9ee)
  • test: change cli.test to be more accurate (#4957) (Xin Du (Clark)) (68f6880)
  • test: use puppeteer-core (#4929) (Pooya Parsa) (940a36f)
  • test: fix e2e test by downloading chromium (#5254) (Pooya Parsa) (2561b68)
  • test: fail tests in case of unhandled errors (#5255) (Pooya Parsa) (d6b505a)
Assets 2

@pi0 pi0 released this Feb 26, 2019 · 443 commits to 2.x since this release

v2.4.5 (2019-02-26)

Bug fixes and Improvements

  • builder: bundle resources other than js(x)/json in node_modules (#4913) (71a70fe)
  • cli: dont force exit when it was explicitly disabled (#4973) (4b82aa9)
  • cli: show warning on forced exit (#4958) (3d2deac)
  • dependencies: update serve-placeholder and esm (#4970) (111455f)
  • vue-renderer: preload modern resource in spa modern mode (#5043) (3516580)
  • vue-app: fix asyncData memory leak on client-side (#4966) (4086800)
  • vue-app: fix getNuxtChildComponents method (#4969) (dbf7099)
  • vue-app: use browser to handle scrolling position on page reload... (#5080) (7001312)
  • webpack: bundle resources other than js(x)/json in node_modules (#4913) (71a70fe)
  • nuxt-ts: error catch in nuxt-ts binary (#5086) (4f887f6)
Assets 2

@pi0 pi0 released this Feb 6, 2019 · 463 commits to 2.x since this release

🐛 Bugfixes

  • webpack: Update dependency terser-webpack-plugin to ^1.2.2.
  • webpack: Update dependency webpack to ^4.29.2
  • utils: Fix serializeFunction for external imports (#4916)
  • config: Warn when using array for postcss config (#4936)
  • module: support src as a function in addModule (#4956)
  • server: await buildDone hook (#4955)
Assets 2
You can’t perform that action at this time.