sidebar |
---|
auto |
First, install the latest Vue CLI globally:
npm install -g @vue/cli
# OR
yarn global add @vue/cli
In your existing projects, run:
vue upgrade
And then follow the command line instructions.
See the following section for detailed breaking changes introduced in each package.
If you want to migrate manually and gradually, you can run vue upgrade <the-plugin-name>
to upgrade a specific Vue CLI plugin.
- Drop support of Node.js 8, 11, 13
- Drop support of NPM 5
The instant prototyping functionalities are removed. Now the vue serve
/ vue build
commands are aliases to npm run serve
/ npm run build
, which in turn execute the scripts specified in the project package.json
.
If you need a minimum setup for developing standalone .vue
components, please use vite
instead.
We've upgraded the underlying webpack version to 5. There are plenty of breaking changes underlyingly, listed in the release announcement page Webpack 5 release (2020-10-10).
Besides the internal changes that are only noticeable for custom configurations, there're several notable changes for user-land code too:
- Named exports from JSON modules are no longer supported. Instead of
import { version } from './package.json'; console.log(version);
useimport package from './package.json'; console.log(package.version);
- Webpack 5 does no longer include polyfills for Node.js modules by default. You shall see an informative error message if your code relies on any of these modules. A detailed list of previously polyfilled modules is also available here.
Considering many ecosystem packages haven't catched up yet, we provided a plugin to opt out to webpack 4 for easier migration.
It's as simple as running
vue add webpack-4
at the project root.
Underlyingly, it uses the resolutions
field for Yarn and PNPM users, and module-alias
for NPM users.
Though both work in all our tests, please be aware that the module-alias
approach is still considered hacky, and may not be as stable as the "resolutions"
one.
No longer supports generating project with node-sass
. It has been deprecated for a while. Please use the sass
package instead.
html-webpack-plugin
is upgraded from v3 to v5, and for webpack 4 users, v4 will be used. More details are available in the release announcement ofhtml-webpack-plugin
v4 and the full changelog.sass-loader
v7 support is dropped. See the v8 breaking changes at its changelog.postcss-loader
is upgraded from v3 to v4. Most notably,PostCSS
options (plugin
/syntax
/parser
/stringifier
) are moved into thepostcssOptions
field. More details available at the changelog.copy-webpack-plugin
is upgraded from v5 to v6. If you never customized its config throughconfig.plugin('copy')
, there should be no user-facing breaking changes. A full list of breaking changes is available atcopy-webpack-plugin
v6.0.0 release.file-loader
is upgraded from v4 to v6, andurl-loader
from v2 to v4. TheesModule
option is now turned on by default for non-Vue-2 projects. Full changelog available atfile-loader
changelog andurl-loader
changelogterser-webpack-plugin
is upgraded from v2 to v4, using terser 5 and some there are some changes in the options format. See full details in its changelog.
eslint-loader
is replaced by eslint-webpack-plugin, dropping support for ESLint <= 6.- New projects are now generated with
eslint-plugin-vue
v7, see its release notes for breaking changes.
- The underlying
workbox-webpack-plugin
is upgraded from v4 to v6. Detailed migration guides available on workbox's website:
- Dropped TSLint support. As TSLint has been deprecated, we removed all TSLint-related code in this version.
Please consider switching to ESLint. You can check out
tslint-to-eslint-config
for a mostly automatic migration experience. ts-loader
is upgraded from v6 to v8. It now only supports TypeScript >= 3.6.fork-ts-checker-webpack-plugin
is upgraded from v3.x to v6.x, you can see the detailed breaking changes in its release notes:
- Cypress is required as a peer dependency.
- Cypress is updated from v3 to v6. See Cypress Migration Guide for detailed instructions of the migration process.
- The underlying
jest
-related packages are upgraded from v24 to v26. For most users the transition would be seamless. See their corresponding changelogs for more detail:
mocha
is upgraded from v6 to v8, please refer to the release notes of mocha v7 and mocha v8 for a complete list of breaking changes.jsdom
is upgraded from v15 to v16, the breaking changes are listed atjsdom
v16.0.0 release