* fix(target-lib): fix dynamic public path in a dynmaic chunk in Firefox
* fix: fix typo
* feat: use external dependency `@soda/get-current-script`
* fix: const -> var, as the `setPublicPath` file is not transpiled
* fix: correctly calculate cacheIdentifier from lockfiles
follow up of #3865fixes#4438
* Revert "fix: correctly calculate cacheIdentifier from lockfiles"
This reverts commit dbce88b7cc.
* fix: should take all configFiles and lockfiles into account
The previous implementation is based on the assumption that config files
have precendences, e.g. `.eslintrc.js` will take higher precendence
over `.eslintrc`, and only one will take effect.
This is not accurate however. For example, babel relies on both babel
config and browserslist config, so we need to deal with 2 config files.
* fix(hmr-websocket): add failing test
* fix(hmr-websocket): set injectClient to false, as we inject our own client
* fix(hmr-websocket): change test project name
* fix(lib): replace "url" module with simple string split (close#4667)
Fixes issue #4667 by implementing the proposal https://github.com/vuejs/vue-cli/issues/4667#issuecomment-548464520
Also gets rid of a node module by using simpler code for removing eventual GET parameters
* Update packages/@vue/cli-service/lib/commands/build/formatStats.js
Co-Authored-By: Haoqun Jiang <haoqunjiang@gmail.com>
* 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
BREAKING CHANGE:
The only real breaking change is https://github.com/webpack-contrib/terser-webpack-plugin/issues/129,
which is not likely to affect normal users.
The rest are default option values changes, which are already covered in
the default provided `terserOptions` of Vue CLI.
Note that here we choose to disable `extractComments` by default, as I
don't see enough data showing such license comments taking too much
space. The extra LICENSE file may also be confusing to some users.
As long as the `minimize` option is set to false (which is default in
production mode), the code won't be minimized. So the mode doesn't
matter when it comes to the `minimizer` config.
By exposing this config, users can simplify their custom config, by
removing the `process.env.NODE_ENV === 'production'` guard around their
custom minimizer configuration.
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.
It has become a common source of mistakes.
For example, during PR #4363 I've referred to the wrong `options`
several times due to the variable shadowing.
BREAKING CHANGE:
Changing directory strcuture, though now becoming more intuitive, may
still break users' workflows, so it's considered a breaking change.
Fixes#4215.
Fixes#3767.
Fixes#4234
BREAKING CHANGE:
These configs are only meaningful when used with a running dev
server.
Technically, it is a breaking change.
For example, this breaks use cases in which a user runs their own dev
server instead of calling `vue-cli-service serve`.
* 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