v13.0.0
New
-
Now uses ES modules internally to take advantage of webpack 3 scope hoisting. This should result in smaller bundle sizes.
-
Now uses PostCSS@6.
Breaking Changes
-
The
esModule
option is nowtrue
by default, because this is necessary for ES-module-based scope hoisting to work. This means the export from a*.vue
file is now an ES module by default, so async components via dynamic import like this will break:const Foo = () => import('./Foo.vue')
Note: the above can continue to work with Vue 2.4 + vue-router 2.7, which will automatically resolve ES modules' default exports when dealing with async components. In earlier versions of Vue and vue-router you will have to do this:
const Foo = () => import('./Foo.vue').then(m => m.default)
Alternatively, you can turn off the new behavior by explicitly using
esModule: false
invue-loader
options.
Similarly, old CommonJS-style requires will also need to be updated:
// before const Foo = require('./Foo.vue') // after const Foo = require('./Foo.vue').default
-
PostCSS 6 might break old PostCSS plugins that haven't been updated to work with it yet.