* refactor: use babel overrides to transpile babel runtime helpers
As recommended in babel/babel#9903.
Get rid of the module-resolver plugin, may fix#3928.
Seems to have fixed#4742 as well.
There may be a small breaking change: as we now use `excludes` & `includes`, babel requires `filename` option to be present (introduced in https://github.com/babel/babel/pull/10181/files). So users who call `babel.transformSync` directly may encounter an error.
However, as we explicitly stated that this preset is only used for Vue CLI internally, I don't expect too many such use cases there. And the error messages are clear enough.
Considering the benefits that this PR brings, I think it's an acceptable tradeoff.
test: update tests for babel
* test: fix windows tests
* test: remove unused variables
* fix: fix scope package paths on Windows
* test: wait some time in router tests in case dom hasn't updated in time
* Enforces require.resolve for loaders
* Updates the lockfile
* Fixes more things
* Adds an extra check
* test(loaders): fix the tests
* style(cli): fix the linting
* style(cli): fix the linting (on windows)
* Update package.json
* Updates the lockfile
* chore: sync dependency versions
* chore: sync dependency versions
* chore: don't introduce unnecessary changes in yarn.lock
* extraneous space
closes#4376
Since css-loader v3, custom CSS Modules configurations are under the
`modules` field. So when a user customizes these configurations, the `modules`
feature is automatically enabled for all css files.
So we must require the user's explicit consensus or disagreement on whether
these rules apply to all CSS files or not.
* refactor: move router to its own plugin
* refactor: rename routerHistoryMode option to historyMode
* test: add @vue/cli-plugin-router tests
* feat: change src/router.js for most common use cases
* fix: fix cli-ui tests
* docs: Remove router root option from docs
* fix: add support for legacy router option