Closed
Description
It's time for a major version bump.
This will be a relatively small release but will include a number of necessary breaking changes.
Planned Features
Dependency Updates
- webpack-chain v5 (feat!: upgrade to webpack-chain v5 #3913) CHANGELOG
- css-loader v2 (feat!: upgrade css-loader to v2 #3866) CHANGELOG
- copy-webpack-plugin v5 CHANGELOG (a very subtle change, unless you've touched its options in config there won't be any affect)
- Nightwatch v1 (chore(plugin/nightwatch): bump nightwatch dependency #3388) MIGRATION GUIDE
- Use ESLint v5 by default (feat!: use ESLint v5 by default everywhere #3775) (projects scaffolded with Vue CLI 3.1+ are already using it, for those scaffolded by 3.0.x, here's the migration guide for eslint and release note of eslint-plugin-vue v5)
- Jest v24 (feat!: upgrade jest to v24 #3870) RELEASE NOTE
- workbox v4 (feat!: upgrade to workbox v4 #3915) RELEASE NOTE and MIGRATION GUIDE
- core-js 3 (#3912) (It's an internal change of
@vue/babel-preset/app
, for now we use core-js 2 by default, babel 7.4.0 supports core-js 3, once we upgraded core-js, some undocumented public APIs may change)
Changed Behavior
-
vue-template-loader
:preserveWhitespace: false
->whitespace: 'condense'
feat!: setwhitespace: 'condense'
for template compiler #3853 - use
NODE_ENV=production
by default if not specified when runningvue-cli-service build
feat!: set default NODE_ENV toproduction
when runningbuild
command #3859 -
plugin-pwa
:manifest.json
should be generated during the build process rather than scaffolding feat!: manifest.json should be generated by cli-plugin-pwa #2981
New Features
Most proposed new features other than plugin APIs can also be landed in v3.x so they are not listed here.
- Plugin API: Allow plugins to provide a minimum vue-cli version feat: add
.version
field andassertVersion
helper to plugin api #3861 -
vue upgrade
overhaul, allowing running codemods from plugins - Plugin ordering Hook to act after others plugins invocation #1754, Plugin depending on another plugin #1938
Removed
- Drop Node.js v9 support (in documentation, no need to touch the code)
- remove support for
vue-cli-service e2e
command (already deprecated since 3.0 rc) (chore: remove support for legacyvue-cli-service e2e
command #3774)
Needs Discussion
-
Drop unit mocha in favor of Jest only- Mostly because mocha-webpack is unmaintained and unlikely to work with webpack 5
- Need good migration strategy for existing users
- Use mochapack instead of mocha-webpack
- Upgrade to mocha v6
How Can I Help?
Please let us know your thoughts and if we missed anything.
We'll be more than happy to explain our rationale around these decisions if there's any further questions.
If there's anything you (and the community) feel strongly about but is not found on this list, please make an effort to send a PR!
We'll be more than happy to accept contributions.