Skip to content

Commit 3656416

Browse files
committed
chore: merge branch 'next' into dev
2 parents 597b4b6 + e4820c6 commit 3656416

File tree

49 files changed

+1304
-1794
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+1304
-1794
lines changed

docs/.vuepress/config.js

+16-6
Original file line numberDiff line numberDiff line change
@@ -116,12 +116,22 @@ module.exports = {
116116
]
117117
},
118118
{
119-
text: 'Migrating From v3',
120-
link: '/migrating-from-v3/'
121-
},
122-
{
123-
text: 'Changelog',
124-
link: 'https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md'
119+
text: 'Migrate from Older Versions',
120+
items:
121+
[
122+
{
123+
text: 'From Vue CLI v3 to v4',
124+
link: '/migrations/migrate-from-v3/'
125+
},
126+
{
127+
text: 'From Vue CLI v4 to v5',
128+
link: '/migrations/migrate-from-v4/'
129+
},
130+
{
131+
text: 'Full Changelog',
132+
link: 'https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md'
133+
}
134+
]
125135
}
126136
],
127137
sidebar: {

docs/core-plugins/typescript.md

-4
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,6 @@ Since `3.0.0-rc.6`, `typescript` is now a peer dependency of this package, so yo
1212

1313
This plugin can be used alongside `@vue/cli-plugin-babel`. When used with Babel, this plugin will output ES2015 and delegate the rest to Babel for auto polyfill based on browser targets.
1414

15-
## Injected Commands
16-
17-
If opted to use [TSLint](https://palantir.github.io/tslint/) during project creation, `vue-cli-service lint` will be injected.
18-
1915
## Caching
2016

2117
[cache-loader](https://github.com/webpack-contrib/cache-loader) is enabled by default and cache is stored in `<projectRoot>/node_modules/.cache/ts-loader`.

docs/migrating-from-v3/README.md renamed to docs/migrations/migrate-from-v3.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
sidebar: auto
33
---
44

5-
# Migrating from v3
5+
# Migrate from v3
66

77
First, install the latest Vue CLI globally:
88

docs/migrations/migrate-from-v4.md

+67
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
---
2+
sidebar: auto
3+
---
4+
5+
# Migrate from v4
6+
7+
First, install the latest Vue CLI globally:
8+
9+
```sh
10+
npm install -g @vue/cli
11+
# OR
12+
yarn global add @vue/cli
13+
```
14+
15+
## Upgrade All Plugins at Once
16+
17+
In your existing projects, run:
18+
19+
```sh
20+
vue upgrade
21+
```
22+
23+
And then follow the command line instructions.
24+
25+
See the following section for detailed breaking changes introduced in each package.
26+
27+
------
28+
29+
## One-By-One Manual Migration
30+
31+
If you want to migrate manually and gradually, you can run `vue upgrade <the-plugin-name>` to upgrade a specific Vue CLI plugin.
32+
33+
------
34+
35+
## Breaking Changes
36+
37+
### For All Packages
38+
39+
* Drop support of Node.js 8, 11, 13
40+
41+
### The `vue` Command (The Global `@vue/cli` Package)
42+
43+
### ESLint Plugin
44+
45+
* `eslint-loader` is upgraded [from v2 to v4](https://github.com/webpack-contrib/eslint-loader/blob/master/CHANGELOG.md). The only major change is that it dropped support for ESLint < v6.
46+
47+
### TypeScript Plugin
48+
49+
#### Dropped TSLint support
50+
51+
As [TSLint has been deprecated](https://github.com/palantir/tslint/issues/4534), we [removed](https://github.com/vuejs/vue-cli/pull/5065) all TSLint-related code in this version.
52+
Please consider switching to ESLint. You can check out [`tslint-to-eslint-config`](https://github.com/typescript-eslint/tslint-to-eslint-config) for a mostly automatic migration experience.
53+
54+
### E2E-Cypress Plugin
55+
56+
* Cypress is updated from v3 to v5. See <https://docs.cypress.io/guides/references/migration-guide.html> for a detailed migration guide.
57+
58+
### Unit-Mocha Plugin
59+
60+
* Updated `mocha` from v6 to v7, please refer to the release notes of [mocha v7](https://github.com/mochajs/mocha/releases/tag/v7.0.0) for a complete list of breaking changes.
61+
* Updated `jsdom` from v15 to v16, the breaking changes are listed at <https://github.com/jsdom/jsdom/releases/tag/16.0.0>
62+
63+
### Internal Packages
64+
65+
#### `@vue/cli-shared-utils`
66+
67+
* Bump [chalk](https://github.com/chalk/chalk) from v2 to v4

docs/ru/core-plugins/typescript.md

-4
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,6 @@ TypeScript может быть сконфигурирован через `tsconf
1212

1313
Этот плагин может использоваться вместе с `@vue/cli-plugin-babel`. При использовании вместе с Babel, этот плагин должен генерировать ES2015 и делегировать остальное Babel для автоматического добавления полифилов на основе целевых браузеров.
1414

15-
## Внедряемые команды
16-
17-
При выборе [TSLint](https://palantir.github.io/tslint/) на этапе создания проекта, будет внедряться команда `vue-cli-service lint`.
18-
1915
## Кэширование
2016

2117
[cache-loader](https://github.com/webpack-contrib/cache-loader) используется по умолчанию, кэш хранится в `<projectRoot>/node_modules/.cache/ts-loader`.

package.json

+9-9
Original file line numberDiff line numberDiff line change
@@ -44,19 +44,19 @@
4444
]
4545
},
4646
"devDependencies": {
47-
"@babel/core": "^7.11.0",
47+
"@babel/core": "^7.11.6",
4848
"@typescript-eslint/eslint-plugin": "^2.33.0",
4949
"@typescript-eslint/parser": "^2.33.0",
5050
"@vue/eslint-config-airbnb": "^5.0.2",
5151
"@vue/eslint-config-prettier": "^6.0.0",
5252
"@vue/eslint-config-standard": "^5.1.2",
5353
"@vue/eslint-config-typescript": "^5.0.2",
54-
"@vuepress/plugin-pwa": "^1.5.0",
55-
"@vuepress/theme-vue": "^1.5.0",
54+
"@vuepress/plugin-pwa": "^1.5.4",
55+
"@vuepress/theme-vue": "^1.5.4",
5656
"babel-core": "7.0.0-bridge.0",
5757
"babel-eslint": "^10.1.0",
5858
"babel-jest": "^24.9.0",
59-
"chromedriver": "^84.0.1",
59+
"chromedriver": "^85.0.0",
6060
"debug": "^4.1.0",
6161
"eslint": "^6.7.2",
6262
"eslint-plugin-graphql": "^3.1.0",
@@ -75,23 +75,23 @@
7575
"inquirer": "^7.1.0",
7676
"jest": "^24.9.0",
7777
"lerna": "^3.22.0",
78-
"lerna-changelog": "^0.8.3",
78+
"lerna-changelog": "^1.0.1",
7979
"lint-staged": "^9.5.0",
8080
"memfs": "^3.2.0",
8181
"minimist": "^1.2.5",
8282
"prettier": ">= 1.13.0",
8383
"request": "^2.88.2",
8484
"request-promise-native": "^1.0.8",
8585
"rimraf": "^3.0.2",
86-
"semver": "^6.1.0",
86+
"semver": "^7.3.2",
8787
"typescript": "~3.9.3",
88-
"vuepress": "^1.5.0",
88+
"vuepress": "^1.5.4",
8989
"webpack": "^4.0.0",
9090
"yorkie": "^2.0.0"
9191
},
9292
"resolutions": {
9393
"puppeteer": "1.11.0",
94-
"vue-template-compiler": "^2.6.11",
95-
"vue-server-renderer": "^2.6.11"
94+
"vue-template-compiler": "^2.6.12",
95+
"vue-server-renderer": "^2.6.12"
9696
}
9797
}

packages/@vue/babel-preset-app/package.json

+5-5
Original file line numberDiff line numberDiff line change
@@ -22,22 +22,22 @@
2222
},
2323
"homepage": "https://github.com/vuejs/vue-cli/tree/dev/packages/@vue/babel-preset-app#readme",
2424
"dependencies": {
25-
"@babel/core": "^7.11.0",
25+
"@babel/core": "^7.11.6",
2626
"@babel/helper-compilation-targets": "^7.9.6",
2727
"@babel/helper-module-imports": "^7.8.3",
2828
"@babel/plugin-proposal-class-properties": "^7.8.3",
2929
"@babel/plugin-proposal-decorators": "^7.8.3",
3030
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
3131
"@babel/plugin-syntax-jsx": "^7.8.3",
32-
"@babel/plugin-transform-runtime": "^7.11.0",
33-
"@babel/preset-env": "^7.11.0",
34-
"@babel/runtime": "^7.11.0",
32+
"@babel/plugin-transform-runtime": "^7.11.5",
33+
"@babel/preset-env": "^7.11.5",
34+
"@babel/runtime": "^7.11.2",
3535
"@vue/babel-plugin-jsx": "^1.0.0-0",
3636
"@vue/babel-preset-jsx": "^1.1.2",
3737
"babel-plugin-dynamic-import-node": "^2.3.3",
3838
"core-js": "^3.6.5",
3939
"core-js-compat": "^3.6.5",
40-
"semver": "^6.1.0"
40+
"semver": "^7.3.2"
4141
},
4242
"peerDependencies": {
4343
"@babel/core": "*",

packages/@vue/cli-plugin-babel/package.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
},
2121
"homepage": "https://github.com/vuejs/vue-cli/tree/dev/packages/@vue/cli-plugin-babel#readme",
2222
"dependencies": {
23-
"@babel/core": "^7.11.0",
23+
"@babel/core": "^7.11.6",
2424
"@vue/babel-preset-app": "^4.5.7",
2525
"@vue/cli-shared-utils": "^4.5.7",
2626
"babel-loader": "^8.1.0",
@@ -32,7 +32,8 @@
3232
"@vue/cli-service": "^3.0.0 || ^4.0.0-0"
3333
},
3434
"devDependencies": {
35-
"jscodeshift": "^0.10.0"
35+
"jscodeshift": "^0.10.0",
36+
"@babel/preset-env": "^7.11.5"
3637
},
3738
"publishConfig": {
3839
"access": "public"

packages/@vue/cli-plugin-e2e-cypress/README.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,17 @@
44
55
This adds E2E testing support using [Cypress](https://www.cypress.io/).
66

7-
Cypress offers a rich interactive interface for running E2E tests, but currently only supports running the tests in Chromium. If you have a hard requirement on E2E testing in multiple browsers, consider using the Selenium-based [@vue/cli-plugin-e2e-nightwatch](https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-e2e-nightwatch).
7+
Cypress offers a rich interactive interface for running E2E tests in Firefox and Chromium based browsers (Chrome, MS Edge, Brave, Electron). To learn more about cross browser testing, visit the [Cypress Cross Browser Testing Guide](https://on.cypress.io/cross-browser-testing).
8+
9+
> **Note:** If you have a hard requirement on E2E testing in IE or Safari, consider using the Selenium-based [@vue/cli-plugin-e2e-nightwatch](https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-e2e-nightwatch).
810
911
## Injected Commands
1012

1113
- **`vue-cli-service test:e2e`**
1214

1315
Run e2e tests with `cypress run`.
1416

15-
By default it launches Cypress in interactive mode with a GUI. If you want to run the tests in headless mode (e.g. for CI), you can do so with the `--headless` option.
17+
By default it launches Cypress in interactive mode with a GUI (via `cypress open`). If you want to run the tests in headless mode (e.g. for CI), you can do so with the `--headless` option.
1618

1719
The command automatically starts a server in production mode to run the e2e tests against. If you want to run the tests multiple times without having to restart the server every time, you can start the server with `vue-cli-service serve --mode production` in one terminal, and then run e2e tests against that server using the `--url` option.
1820

packages/@vue/cli-plugin-e2e-cypress/__tests__/cypressPlugin.spec.js

-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ test('should work with TS', async () => {
3030
plugins: {
3131
'@vue/cli-plugin-typescript': {
3232
'classComponent': true,
33-
'tsLint': true,
3433
'lintOn': ['save']
3534
},
3635
'@vue/cli-plugin-e2e-cypress': {}

packages/@vue/cli-plugin-e2e-cypress/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
},
2525
"dependencies": {
2626
"@vue/cli-shared-utils": "^4.5.7",
27-
"cypress": "^3.8.3",
27+
"cypress": "^5.2.0",
2828
"eslint-plugin-cypress": "^2.10.3"
2929
},
3030
"peerDependencies": {

packages/@vue/cli-plugin-e2e-nightwatch/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@
2525
"dependencies": {
2626
"@vue/cli-shared-utils": "^4.5.7",
2727
"deepmerge": "^4.2.2",
28-
"nightwatch": "^1.3.5"
28+
"nightwatch": "^1.4.1"
2929
},
3030
"devDependencies": {
31-
"chromedriver": "^84.0.1",
31+
"chromedriver": "^85.0.0",
3232
"geckodriver": "^1.20.0",
3333
"selenium-server": "^3.141.59"
3434
},

packages/@vue/cli-plugin-e2e-webdriverio/__tests__/wdioPlugin.spec.js

-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ test('should work with TS', async () => {
2828
plugins: {
2929
'@vue/cli-plugin-typescript': {
3030
'classComponent': true,
31-
'tsLint': true,
3231
'lintOn': ['save']
3332
},
3433
'@vue/cli-plugin-e2e-webdriverio': {

packages/@vue/cli-plugin-e2e-webdriverio/package.json

+11-11
Original file line numberDiff line numberDiff line change
@@ -27,19 +27,19 @@
2727
"dependencies": {
2828
"@types/mocha": "^8.0.1",
2929
"@vue/cli-shared-utils": "^4.5.7",
30-
"@wdio/cli": "^6.1.11",
31-
"@wdio/local-runner": "^6.1.11",
32-
"@wdio/mocha-framework": "^6.1.8",
33-
"@wdio/sauce-service": "^6.1.9",
34-
"@wdio/spec-reporter": "^6.1.9",
35-
"@wdio/sync": "^6.1.8",
30+
"@wdio/cli": "^6.4.6",
31+
"@wdio/local-runner": "^6.4.6",
32+
"@wdio/mocha-framework": "^6.4.0",
33+
"@wdio/sauce-service": "^6.4.6",
34+
"@wdio/spec-reporter": "^6.4.0",
35+
"@wdio/sync": "^6.4.6",
3636
"eslint-plugin-wdio": "^6.0.12",
37-
"webdriverio": "^6.1.11"
37+
"webdriverio": "^6.4.6"
3838
},
3939
"peerDependencies": {
4040
"chromedriver": "*",
4141
"geckodriver": "*",
42-
"wdio-chromedriver-service": "^6.0.3",
42+
"wdio-chromedriver-service": "^6.0.4",
4343
"wdio-geckodriver-service": "^1.1.0"
4444
},
4545
"peerDependenciesMeta": {
@@ -57,10 +57,10 @@
5757
}
5858
},
5959
"devDependencies": {
60-
"chromedriver": "^84.0.1",
60+
"chromedriver": "^85.0.0",
6161
"geckodriver": "^1.20.0",
62-
"ts-node": "^8.10.2",
63-
"wdio-chromedriver-service": "^6.0.3",
62+
"ts-node": "^9.0.0",
63+
"wdio-chromedriver-service": "^6.0.4",
6464
"wdio-geckodriver-service": "^1.1.0"
6565
}
6666
}

packages/@vue/cli-plugin-eslint/__tests__/eslintMigrator.spec.js

+1-17
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
jest.setTimeout(300000)
2-
jest.mock('inquirer')
32

43
const create = require('@vue/cli-test-utils/createUpgradableProject')
5-
const { expectPrompts } = require('inquirer')
64

75
test('upgrade: should add eslint to devDependencies', async () => {
86
const project = await create('plugin-eslint-v3.0', {
@@ -16,17 +14,10 @@ test('upgrade: should add eslint to devDependencies', async () => {
1614
const pkg = JSON.parse(await project.read('package.json'))
1715
expect(pkg.devDependencies).not.toHaveProperty('eslint')
1816

19-
expectPrompts([
20-
{
21-
message: `Your current ESLint version is v4`,
22-
confirm: false
23-
}
24-
])
25-
2617
await project.upgrade('eslint')
2718

2819
const updatedPkg = JSON.parse(await project.read('package.json'))
29-
expect(updatedPkg.devDependencies.eslint).toMatch('^4')
20+
expect(updatedPkg.devDependencies.eslint).toMatch('^6')
3021
})
3122

3223
test('upgrade: should upgrade eslint from v5 to v6', async () => {
@@ -42,13 +33,6 @@ test('upgrade: should upgrade eslint from v5 to v6', async () => {
4233
const pkg = JSON.parse(await project.read('package.json'))
4334
expect(pkg.devDependencies.eslint).toMatch('^5')
4435

45-
expectPrompts([
46-
{
47-
message: `Your current ESLint version is v5`,
48-
confirm: true
49-
}
50-
])
51-
5236
try {
5337
await project.upgrade('eslint')
5438
} catch (e) {

packages/@vue/cli-plugin-eslint/eslintDeps.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ const DEPS_MAP = {
2020
'eslint-plugin-standard': '^4.0.0'
2121
},
2222
typescript: {
23-
'@vue/eslint-config-typescript': '^5.0.2',
23+
'@vue/eslint-config-typescript': '^5.1.0',
2424
'@typescript-eslint/eslint-plugin': '^2.33.0',
2525
'@typescript-eslint/parser': '^2.33.0'
2626
}

0 commit comments

Comments
 (0)