Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: vuejs/vue-cli
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v3.6.0
Choose a base ref
...
head repository: vuejs/vue-cli
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v3.7.0
Choose a head ref

Commits on Mar 20, 2019

  1. Copy the full SHA
    ecbccc6 View commit details
  2. Copy the full SHA
    fceede1 View commit details

Commits on Mar 28, 2019

  1. Copy the full SHA
    3d9ac30 View commit details

Commits on Apr 8, 2019

  1. Copy the full SHA
    f6a6f14 View commit details
  2. Copy the full SHA
    9003f3c View commit details

Commits on Apr 9, 2019

  1. docs(zh/ru): fix sass import path

    follow up of #3569
    closes #3783
    haoqunjiang committed Apr 9, 2019
    Copy the full SHA
    7916bb6 View commit details

Commits on Apr 13, 2019

  1. Copy the full SHA
    500a315 View commit details
  2. Copy the full SHA
    5781340 View commit details
  3. Copy the full SHA
    5fbda10 View commit details
  4. Copy the full SHA
    8b24b51 View commit details
  5. v3.6.1

    haoqunjiang committed Apr 13, 2019
    1
    Copy the full SHA
    d97ed6c View commit details
  6. fix: --dev shouldn't try to load dev assets, closes #3802

    Guillaume Chau committed Apr 13, 2019
    Copy the full SHA
    022e17d View commit details
  7. feat(SharedData): set: log number of subscriptions

    Guillaume Chau committed Apr 13, 2019
    Copy the full SHA
    bdf74ba View commit details
  8. fix(PubSub): set max listeners to Infinity

    Guillaume Chau committed Apr 13, 2019
    Copy the full SHA
    01d2035 View commit details
  9. feat(tasks): override args switch, closes #3236

    Guillaume Chau committed Apr 13, 2019
    Copy the full SHA
    bbe4002 View commit details
  10. chore(locale): update text

    Guillaume Chau committed Apr 13, 2019
    Copy the full SHA
    e8bc36d View commit details

Commits on Apr 14, 2019

  1. Copy the full SHA
    1a72e99 View commit details
  2. chore: graphql should be directly listed as a dependency

    as some of @vue/cli-ui's sub dependencies have listed it as a peer dep
    haoqunjiang committed Apr 14, 2019
    Copy the full SHA
    5ce60b7 View commit details
  3. v3.6.2

    haoqunjiang committed Apr 14, 2019
    Copy the full SHA
    13e283e View commit details
  4. Copy the full SHA
    1e09efa View commit details

Commits on Apr 15, 2019

  1. fix: progress-path background color for dark mode (#3717)

    * Fixed progress-path background color for dark mode
    
    * Fixed progress dots background color for dark mode
    
    * Updated progress background color for dark mode with code suggestions
    
    Co-Authored-By: ajerez <albertoj04@gmail.com>
    ajerez authored and Akryum committed Apr 15, 2019
    Copy the full SHA
    57151be View commit details

Commits on Apr 16, 2019

  1. fix: jest typeahead config (#3815)

    fixes #3814
    cexbrayat authored and haoqunjiang committed Apr 16, 2019
    Copy the full SHA
    5006110 View commit details
  2. v3.6.3

    haoqunjiang committed Apr 16, 2019
    Copy the full SHA
    7375b12 View commit details

Commits on Apr 17, 2019

  1. chore: update lockfile

    haoqunjiang committed Apr 17, 2019
    Copy the full SHA
    f6c9437 View commit details
  2. workflow: allow ! for indicating breaking changes in commit mesasge…

    … header
    
    This was introduced in conventional-commits 1.0.0-beta.4
    conventional-commits/conventionalcommits.org#134
    haoqunjiang committed Apr 17, 2019
    Copy the full SHA
    f09722c View commit details

Commits on Apr 18, 2019

  1. Copy the full SHA
    e267179 View commit details
  2. Copy the full SHA
    0d7908b View commit details
  3. Copy the full SHA
    89e0697 View commit details

Commits on Apr 22, 2019

  1. chore: remove redundant <= IE8 rule (#3851)

    The `not ie <= 8` rule in the browserlist is redundant. `ie <= 8` browsers aren't added by `> 1%` nor `last 2 versions`
    MartijnCuppens authored and haoqunjiang committed Apr 22, 2019
    Copy the full SHA
    0bfc4b6 View commit details

Commits on Apr 25, 2019

  1. Copy the full SHA
    db374ec View commit details
  2. docs: move plugin naming (#3874)

    * docs: move naming plugin section to the beginning of the guide
    
    * docs: added a link to npm
    
    * Update docs/dev-guide/plugin-dev.md
    
    Co-Authored-By: NataliaTepluhina <NataliaTepluhina@users.noreply.github.com>
    
    * docs: add a warning in plugin naming section
    NataliaTepluhina authored and Akryum committed Apr 25, 2019
    Copy the full SHA
    411c999 View commit details

Commits on Apr 27, 2019

  1. fix: vue-virtual-scroller should be in devDependencies as it's client…

    …-side only (#3871)
    
    This commit fixes a peer dependency warning described here:
    #2862 (comment)
    haoqunjiang authored Apr 27, 2019
    Copy the full SHA
    405480e View commit details
  2. Copy the full SHA
    41f9dcf View commit details
  3. Copy the full SHA
    4f74b27 View commit details
  4. fix: process should be polyfilled rather than mocked (#3878)

    To be in line with webpack's default configuration and avoid confusions:
    https://webpack.js.org/configuration/node/
    haoqunjiang authored Apr 27, 2019
    Copy the full SHA
    b082da8 View commit details
  5. Copy the full SHA
    3da799c View commit details
  6. Copy the full SHA
    e9259cd View commit details
  7. Copy the full SHA
    a351cba View commit details

Commits on Apr 28, 2019

  1. feat: add .version field and assertVersion helper to plugin api (#…

    …3861)
    
    partially addresses #2336 (GeneratorAPI TBD)
    haoqunjiang authored Apr 28, 2019
    Copy the full SHA
    a3e0858 View commit details
  2. fix: should not add polyfills from transform-runtime plugin (#3899)

    The basic idea is the same as #3730, except that this time we use babel-plugin-module-resolve for aliasing instead of relying on webpack.
    haoqunjiang authored Apr 28, 2019
    Copy the full SHA
    bc1a345 View commit details
  3. chore: update lockfile

    haoqunjiang committed Apr 28, 2019
    Copy the full SHA
    419d3e8 View commit details
  4. chore: pre release sync

    haoqunjiang committed Apr 28, 2019
    Copy the full SHA
    6e6484e View commit details
  5. v3.7.0

    haoqunjiang committed Apr 28, 2019
    Copy the full SHA
    0dbfa5a View commit details
Showing with 548 additions and 358 deletions.
  1. +118 −17 CHANGELOG.md
  2. +19 −0 docs/dev-guide/plugin-api.md
  3. +43 −39 docs/dev-guide/plugin-dev.md
  4. +4 −0 docs/guide/html-and-static-assets.md
  5. +1 −1 docs/guide/installation.md
  6. +1 −1 docs/ru/guide/browser-compatibility.md
  7. +1 −1 docs/ru/guide/css.md
  8. +1 −1 docs/zh/guide/css.md
  9. +1 −1 docs/zh/guide/deployment.md
  10. +2 −3 lerna.json
  11. +4 −4 packages/@vue/babel-preset-app/__tests__/babel-preset.spec.js
  12. +22 −5 packages/@vue/babel-preset-app/index.js
  13. +3 −3 packages/@vue/babel-preset-app/package.json
  14. +1 −1 packages/@vue/cli-init/package.json
  15. +1 −1 packages/@vue/cli-overlay/package.json
  16. +6 −2 packages/@vue/cli-plugin-babel/index.js
  17. +3 −3 packages/@vue/cli-plugin-babel/package.json
  18. +2 −2 packages/@vue/cli-plugin-e2e-cypress/package.json
  19. +2 −2 packages/@vue/cli-plugin-e2e-nightwatch/package.json
  20. +2 −2 packages/@vue/cli-plugin-eslint/package.json
  21. +2 −2 packages/@vue/cli-plugin-pwa/package.json
  22. +6 −2 packages/@vue/cli-plugin-typescript/index.js
  23. +2 −2 packages/@vue/cli-plugin-typescript/package.json
  24. +2 −2 packages/@vue/cli-plugin-unit-jest/generator/index.js
  25. +3 −3 packages/@vue/cli-plugin-unit-jest/package.json
  26. +2 −2 packages/@vue/cli-plugin-unit-mocha/package.json
  27. +5 −5 packages/@vue/cli-service-global/package.json
  28. +16 −1 packages/@vue/cli-service/__tests__/Service.spec.js
  29. +1 −2 packages/@vue/cli-service/generator/index.js
  30. +55 −24 packages/@vue/cli-service/lib/PluginAPI.js
  31. +2 −1 packages/@vue/cli-service/lib/commands/inspect.js
  32. +0 −3 packages/@vue/cli-service/lib/config/base.js
  33. +4 −1 packages/@vue/cli-service/lib/options.js
  34. +4 −3 packages/@vue/cli-service/package.json
  35. +3 −3 packages/@vue/cli-service/types/ProjectOptions.d.ts
  36. +3 −1 packages/@vue/cli-shared-utils/lib/env.js
  37. +1 −1 packages/@vue/cli-shared-utils/package.json
  38. +1 −1 packages/@vue/cli-test-utils/package.json
  39. +4 −4 packages/@vue/cli-ui-addon-webpack/package.json
  40. +3 −1 packages/@vue/cli-ui-addon-webpack/src/components/BuildProgress.vue
  41. +0 −1 packages/@vue/cli-ui-addon-widgets/.browserslistrc
  42. +4 −4 packages/@vue/cli-ui-addon-widgets/package.json
  43. +3 −3 packages/@vue/cli-ui/apollo-server/connectors/folders.js
  44. +6 −1 packages/@vue/cli-ui/apollo-server/connectors/shared-data.js
  45. +18 −9 packages/@vue/cli-ui/apollo-server/connectors/tasks.js
  46. +1 −1 packages/@vue/cli-ui/apollo-server/pubsub.js
  47. +9 −1 packages/@vue/cli-ui/apollo-server/resolvers.js
  48. +1 −1 packages/@vue/cli-ui/apollo-server/util/command.js
  49. +2 −2 packages/@vue/cli-ui/apollo-server/util/logger.js
  50. +27 −0 packages/@vue/cli-ui/apollo-server/util/parse-args.js
  51. +3 −3 packages/@vue/cli-ui/apollo-server/util/rcFolder.js
  52. +17 −0 packages/@vue/cli-ui/apollo-server/util/stats.js
  53. +6 −2 packages/@vue/cli-ui/locales/en.json
  54. +9 −8 packages/@vue/cli-ui/package.json
  55. +1 −1 packages/@vue/cli-upgrade/package.json
  56. +4 −3 packages/@vue/cli/lib/Creator.js
  57. +1 −1 packages/@vue/cli/lib/add.js
  58. +1 −1 packages/@vue/cli/lib/invoke.js
  59. +1 −1 packages/@vue/cli/lib/ui.js
  60. +5 −5 packages/@vue/cli/package.json
  61. +21 −21 packages/vue-cli-version-marker/package.json
  62. +7 −2 scripts/genChangelog.js
  63. +1 −1 scripts/verifyCommitMsg.js
  64. +44 −133 yarn.lock
135 changes: 118 additions & 17 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,34 +1,135 @@

## Unreleased (2019-04-13)
## 3.7.0 (2019-04-28)

#### :rocket: New Feature
* `@vue/cli-service`
* [#3861](https://github.com/vuejs/vue-cli/pull/3861) feat: add `.version` field and `assertVersion` helper to plugin api ([@sodatea](https://github.com/sodatea))
* [#3847](https://github.com/vuejs/vue-cli/pull/3847) feat: add types for new `lintOnSave` options and multi-page entries ([@sodatea](https://github.com/sodatea))
* [#3844](https://github.com/vuejs/vue-cli/pull/3844) feat: syntax highlight inspect output ([@Akryum](https://github.com/Akryum))
* `@vue/cli-plugin-babel`, `@vue/cli-plugin-typescript`, `@vue/cli-service`
* [#3864](https://github.com/vuejs/vue-cli/pull/3864) feat: allow `parallel` option to be an integer ([@sodatea](https://github.com/sodatea))
* `@vue/cli`
* [#3848](https://github.com/vuejs/vue-cli/pull/3848) feat: should support `bare` option in `preset.json` ([@sodatea](https://github.com/sodatea))

#### :bug: Bug Fix
* `@vue/cli-service`
* [#3865](https://github.com/vuejs/vue-cli/pull/3865) fix: should invalidate cache when lockfiles have updated ([@sodatea](https://github.com/sodatea))
* `@vue/cli-plugin-unit-jest`
* [#3867](https://github.com/vuejs/vue-cli/pull/3867) fix: pin jest-watch-typeahead to 0.2.1, avoid introducing jest 24 deps ([@sodatea](https://github.com/sodatea))
* `@vue/cli-ui`
* [#3688](https://github.com/vuejs/vue-cli/pull/3688) feat(ui): add copyContent to clipboard button on terminal component ([@pikax](https://github.com/pikax))
* [#3871](https://github.com/vuejs/vue-cli/pull/3871) fix: vue-virtual-scroller should be in devDependencies as it's client-side only ([@sodatea](https://github.com/sodatea))
* `@vue/cli-shared-utils`
* [#3826](https://github.com/vuejs/vue-cli/pull/3826) fix: should not show error message when pnpm is not installed ([@sodatea](https://github.com/sodatea))

#### :house: Internal
* `@vue/babel-preset-app`
* [#3899](https://github.com/vuejs/vue-cli/pull/3899) fix: should not add polyfills from transform-runtime plugin ([@sodatea](https://github.com/sodatea))
* `@vue/cli-service`
* [#3703](https://github.com/vuejs/vue-cli/pull/3703) feat(cli-service): add --filename option to specify the output file name ([@NickeyLin](https://github.com/NickeyLin))
* [#3760](https://github.com/vuejs/vue-cli/pull/3760) feat: bundle currentScript polyfill by default if library needs IE support ([@sodatea](https://github.com/sodatea))
* [#3595](https://github.com/vuejs/vue-cli/pull/3595) feat: support multi-main entry in pages config ([@sodatea](https://github.com/sodatea))
* [#3663](https://github.com/vuejs/vue-cli/pull/3663) feat: support pug as html template ([@sodatea](https://github.com/sodatea))
* [#3878](https://github.com/vuejs/vue-cli/pull/3878) fix: `process` should be polyfilled rather than mocked ([@sodatea](https://github.com/sodatea))
* `@vue/cli-service`, `@vue/cli-ui-addon-widgets`
* [#3851](https://github.com/vuejs/vue-cli/pull/3851) Remove redundant <= IE8 rule ([@MartijnCuppens](https://github.com/MartijnCuppens))

#### Committers: 4
- Guillaume Chau ([@Akryum](https://github.com/Akryum))
- Haoqun Jiang ([@sodatea](https://github.com/sodatea))
- Martijn Cuppens ([@MartijnCuppens](https://github.com/MartijnCuppens))
- Natalia Tepluhina ([@NataliaTepluhina](https://github.com/NataliaTepluhina))



## 3.6.3 (2019-04-16)

#### :bug: Bug Fix
* `@vue/cli-plugin-unit-jest`
* [#3815](https://github.com/vuejs/vue-cli/pull/3815) fix: jest typeahead config ([@cexbrayat](https://github.com/cexbrayat))
* `@vue/cli-ui-addon-webpack`
* [#3717](https://github.com/vuejs/vue-cli/pull/3717) Fixed progress-path background color for dark mode ([@ajerez](https://github.com/ajerez))

#### Committers: 2
- Alberto Jerez ([@ajerez](https://github.com/ajerez))
- Cédric Exbrayat ([@cexbrayat](https://github.com/cexbrayat))



## 3.6.2 (2019-04-14)

#### :bug: Bug Fix
* `@vue/cli-ui`, `@vue/cli`
* [#3806](https://github.com/vuejs/vue-cli/pull/3806) fix vue add/invoke bug when user does not have yarn installed ([@sodatea](https://github.com/sodatea))
* `@vue/cli-ui`
* [022e17d](https://github.com/vuejs/vue-cli/commit/022e17da5725742b0f425c0976b090bd1ce6581f) `--dev` shouldn't try to load dev assets, closes #3802 ([@Akryum](https://github.com/Akryum))

#### :rocket: New Feature
* `@vue/cli-ui`
* [bbe4002](https://github.com/vuejs/vue-cli/commit/bbe4002480b46c8ce3721afe1285fea4f7bba3bf) **tasks**: override args switch, closes #3236 ([@Akryum](https://github.com/Akryum))

#### Committers: 2
- Haoqun Jiang ([@sodatea](https://github.com/sodatea))
- Guillaume Chau ([@Akryum](https://github.com/Akryum))


## 3.6.1 (2019-04-13)

#### :bug: Bug Fix
* `@vue/cli-ui`
* [#3801](https://github.com/vuejs/vue-cli/pull/3801) fix: fix ERR_INVALID_ARG_TYPE error when launching `vue ui` ([@sodatea](https://github.com/sodatea))

#### :memo: Documentation
* [#3444](https://github.com/vuejs/vue-cli/pull/3444) Add notes for multi-page apps on references to 'prefetch' plugin ([@bengallienne](https://github.com/bengallienne))
* [#3656](https://github.com/vuejs/vue-cli/pull/3656) docs: adjust plugin dev guide example to write modified contents, Closes [#3655](https://github.com/vuejs/vue-cli/issues/3655) ([@akrawchyk](https://github.com/akrawchyk))

#### Committers: 3
- Andrew Krawchyk ([@akrawchyk](https://github.com/akrawchyk))
- Haoqun Jiang ([@sodatea](https://github.com/sodatea))
- [@bengallienne](https://github.com/bengallienne)



## 3.6.0 (2019-04-13)

#### :rocket: New Feature
* `@vue/cli-ui`
* [#3688](https://github.com/vuejs/vue-cli/pull/3688) add "copy content to clipboard" button on terminal component ([@pikax](https://github.com/pikax))
* [c81e6c](https://github.com/vuejs/vue-cli/commit/c81e6c21a20d66bfa66a664d94ec3ccc81c54d38) **project create**: bare option ([@Akryum](https://github.com/Akryum))
* [08de713](https://github.com/vuejs/vue-cli/commit/08de713598530bbc85282c6853bffebb912142a3) **plugin add**: feature icons ([@Akryum](https://github.com/Akryum))
* [fbfbd29](https://github.com/vuejs/vue-cli/commit/fbfbd29be5b3c2f07adb1c8db45ba18cd28468a5) vulnerability audit widget ([@Akryum](https://github.com/Akryum))
* [40d9346](https://github.com/vuejs/vue-cli/commit/40d9346914b3416bf3e6265fd020f6be768c9543) **api**: save shared data to disk ([@Akryum](https://github.com/Akryum))
* [ca2bdad](https://github.com/vuejs/vue-cli/commit/ca2bdadb028ee0496e1cf64cca4be2a6cb591547) **tasks**: refresh button ([@Akryum](https://github.com/Akryum))
* `@vue/cli-service`
* [#3703](https://github.com/vuejs/vue-cli/pull/3703) add `--filename` option to specify the output file name ([@NickeyLin](https://github.com/NickeyLin))
* [#3760](https://github.com/vuejs/vue-cli/pull/3760) bundle currentScript polyfill by default if library needs IE support ([@sodatea](https://github.com/sodatea))
* [#3595](https://github.com/vuejs/vue-cli/pull/3595) support multi-main entry in pages config ([@sodatea](https://github.com/sodatea))
* [#3663](https://github.com/vuejs/vue-cli/pull/3663) support pug as html template ([@sodatea](https://github.com/sodatea))
* `@vue/cli`
* [#3568](https://github.com/vuejs/vue-cli/pull/3568) feat(cli): Added makeJSOnlyValue to generator API. Provides convenien… ([@steveworkman](https://github.com/steveworkman))
* [#3643](https://github.com/vuejs/vue-cli/pull/3643) feat: do not write undefined fields to config files ([@sodatea](https://github.com/sodatea))
* [#3568](https://github.com/vuejs/vue-cli/pull/3568) add makeJSOnlyValue to generator API. Provides convenien… ([@steveworkman](https://github.com/steveworkman))
* [#3643](https://github.com/vuejs/vue-cli/pull/3643) do not write undefined fields to config files ([@sodatea](https://github.com/sodatea))
* `@vue/cli-service`, `@vue/cli-shared-utils`, `@vue/cli-ui`, `@vue/cli`
* [#1531](https://github.com/vuejs/vue-cli/pull/1531) feat: support PNPM as a package manager ([@robertkruis](https://github.com/robertkruis))
* [#1531](https://github.com/vuejs/vue-cli/pull/1531) support PNPM as a package manager ([@robertkruis](https://github.com/robertkruis))
* [#3790](https://github.com/vuejs/vue-cli/pull/3790) fix PNPM compatibility issues during scaffolding ([@sodatea](https://github.com/sodatea))
* `@vue/cli-plugin-eslint`, `@vue/cli-service`
* [#3572](https://github.com/vuejs/vue-cli/pull/3572) Add 3rd option to `lintOnSave` to support 'default' behaviour (Closes [#3552](https://github.com/vuejs/vue-cli/issues/3552)) ([@LinusBorg](https://github.com/LinusBorg))
* [#3572](https://github.com/vuejs/vue-cli/pull/3572) add 3rd option to `lintOnSave` to support 'default' behaviour (Closes [#3552](https://github.com/vuejs/vue-cli/issues/3552)) ([@LinusBorg](https://github.com/LinusBorg))
* `@vue/cli-plugin-unit-jest`
* [#3589](https://github.com/vuejs/vue-cli/pull/3589) feat: add jest typeahead plugin ([@sodatea](https://github.com/sodatea))
* [#3589](https://github.com/vuejs/vue-cli/pull/3589) add jest typeahead plugin ([@sodatea](https://github.com/sodatea))

#### :bug: Bug Fix
* `@vue/cli-service`, `@vue/cli-shared-utils`, `@vue/cli-ui`, `@vue/cli`
* [#3790](https://github.com/vuejs/vue-cli/pull/3790) fix pnpm compatibility issues during scaffolding ([@sodatea](https://github.com/sodatea))
* `@vue/cli-ui`
* [8c3ff11](https://github.com/vuejs/vue-cli/commit/8c3ff1165384bf4bafca39a267e3da3d9821abdb) **project create**: run vue create in child process, closes #3664 ([@Akryum](https://github.com/Akryum))
* [dac7a4b](https://github.com/vuejs/vue-cli/commit/dac7a4bf743a42befb119c1b0ab7992c73fec766) **project manager**: ake open in editor button more discoverable ([@Akryum](https://github.com/Akryum))
* [fd9cb16](https://github.com/vuejs/vue-cli/commit/fd9cb1628e04cd30a01cab0b5591bab7669768d7) **widget**: make resize handles more visible ([@Akryum](https://github.com/Akryum))
* [c4bd1ab](https://github.com/vuejs/vue-cli/commit/c4bd1abea80fbd30d359812da8f88b12e9fca48b) set cache-control header on static files ([@Akryum](https://github.com/Akryum))

#### :house: Internal
* `@vue/cli-service`
* [#2405](https://github.com/vuejs/vue-cli/pull/2405) refactor: remove unused `placeAtRootIfRelative` parameter ([@dailyvuejs](https://github.com/dailyvuejs))
* [#3707](https://github.com/vuejs/vue-cli/pull/3707) chore: more accurate vim swap file ignore ([@Newbrict](https://github.com/Newbrict))
* [#3709](https://github.com/vuejs/vue-cli/pull/3709) chore: use high resolution version of favicon.ico ([@phanan](https://github.com/phanan))
* [#3628](https://github.com/vuejs/vue-cli/pull/3628) feat: make `fibers` opt-in for dart sass ([@sodatea](https://github.com/sodatea))
* [#2405](https://github.com/vuejs/vue-cli/pull/2405) remove unused `placeAtRootIfRelative` parameter ([@dailyvuejs](https://github.com/dailyvuejs))
* [#3707](https://github.com/vuejs/vue-cli/pull/3707) more accurate vim swap file ignore ([@Newbrict](https://github.com/Newbrict))
* [#3709](https://github.com/vuejs/vue-cli/pull/3709) use high resolution version of favicon.ico ([@phanan](https://github.com/phanan))
* [#3628](https://github.com/vuejs/vue-cli/pull/3628) make `fibers` opt-in for dart sass ([@sodatea](https://github.com/sodatea))
* `@vue/cli-ui`
* [#3778](https://github.com/vuejs/vue-cli/pull/3778) **refactor(plugin)**: invoke is now done in child process ([@Akryum](https://github.com/Akryum))
* [4f0286c](https://github.com/vuejs/vue-cli/commit/4f0286c5535e87d5303feed52ba662082ef0296b) **perf(webpack dashboard)**: cleaning the analyzer data ([@Akryum](https://github.com/Akryum))
* [ecd64c4](https://github.com/vuejs/vue-cli/commit/ecd64c43a620a3573ee37e933cac0e8429f009c1) **perf(task details)**: better defering ([@Akryum](https://github.com/Akryum))
* [13199f5](https://github.com/vuejs/vue-cli/commit/13199f52e1e227bc1a720fb95c913564b8241e88) **tasks**: sort ([@Akryum](https://github.com/Akryum))

* Other
* [#3650](https://github.com/vuejs/vue-cli/pull/3650) workflow: use lerna-changelog ([@sodatea](https://github.com/sodatea))

19 changes: 19 additions & 0 deletions docs/dev-guide/plugin-api.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,24 @@
# Plugin API

## version

Type: `string`

The version string for the `@vue/cli-service` version that is loading the plugin.


## assertVersion(range)

- **Arguments**
- `{integer | string} range` - a semver range that `@vue/cli-service` needs to satisfy

- **Usage**

While api.version can be useful in general, it's sometimes nice to just declare your version.
This API exposes a simple way to do that.

Nothing happens if the provided version is satified. Otherwise, an error will be thrown.

## getCwd

- **Usage**:
82 changes: 43 additions & 39 deletions docs/dev-guide/plugin-dev.md
Original file line number Diff line number Diff line change
@@ -18,7 +18,7 @@ A CLI plugin is an npm package that can add additional features to the project u
Don't overuse vue-cli plugins! If you want just to include a certain dependency, e.g. [Lodash](https://lodash.com/) - it's easier to do it manually with npm than create a specific plugin only to do so.
:::

CLI Plugin should always contain a [Service Plugin](#service-plugin) as its main export, and can optionally contain a [Generator](#generator), a [Prompt File](#prompts) and a [Vue UI integration](#ui-integrtion).
CLI Plugin should always contain a [Service Plugin](#service-plugin) as its main export, and can optionally contain a [Generator](#generator), a [Prompt File](#prompts) and a [Vue UI integration](#ui-integration).

As an npm package, CLI plugin must have a `package.json` file. It's also recommended to have a plugin description in `README.md` to help others find your plugin on npm.

@@ -34,6 +34,44 @@ So, typical CLI plugin folder structure looks like the following:
└── ui.js # Vue UI integration (optional)
```

## Naming and discoverability

For a CLI plugin to be usable in a Vue CLI project, it must follow the name convention `vue-cli-plugin-<name>` or `@scope/vue-cli-plugin-<name>`. It allows your plugin to be:

- Discoverable by `@vue/cli-service`;
- Discoverable by other developers via searching;
- Installable via `vue add <name>` or `vue invoke <name>`.

:::warning Warning
Make sure to name the plugin correctly, otherwise it will be impossible to install it via `vue add` command or find it with Vue UI plugins search!
:::

For better discoverability when a user searches for your plugin, put keywords describing your plugin in the `description` field of the plugin `package.json` file.

Example:

```json
{
"name": "vue-cli-plugin-apollo",
"version": "0.7.7",
"description": "vue-cli plugin to add Apollo and GraphQL"
}
```

You should add the url to the plugin website or repository in the `homepage` or `repository` field so that a 'More info' button will be displayed in your plugin description:

```json
{
"repository": {
"type": "git",
"url": "git+https://github.com/Akryum/vue-cli-plugin-apollo.git"
},
"homepage": "https://github.com/Akryum/vue-cli-plugin-apollo#readme"
}
```

![Plugin search item](/plugin-search-item.png)

## Generator

A Generator part of the CLI plugin is usually needed when you want to extend your package with new dependencies, create new files in your project or edit existing ones.
@@ -234,18 +272,19 @@ api.onCreateComplete(() => {

Finally, you need to write the content back to the main file:

```js{11}
```js{2,11}
// generator/index.js
api.onCreateComplete(() => {
const { EOL } = require('os')
const fs = require('fs')
const contentMain = fs.readFileSync(api.entryFile, { encoding: 'utf-8' })
const lines = contentMain.split(/\r?\n/g)
const renderIndex = lines.findIndex(line => line.match(/render/))
lines[renderIndex] += `\n router,`
lines[renderIndex] += `${EOL} router,`
fs.writeFileSync(api.entryFile, contentMain, { encoding: 'utf-8' })
fs.writeFileSync(api.entryFile, lines.join(EOL), { encoding: 'utf-8' })
})
```

@@ -765,41 +804,6 @@ You can put a `logo.png` file in the root directory of the folder that will be p

The logo should be a square non-transparent image (ideally 84x84).

### Discoverability

For a CLI plugin to be usable by other developers, it must be published on npm following the name convention `vue-cli-plugin-<name>` or `@scope/vue-cli-plugin-<name>`. Following the name convention allows your plugin to be:

- Discoverable by `@vue/cli-service`;
- Discoverable by other developers via searching;
- Installable via `vue add <name>` or `vue invoke <name>`.

For better discoverability when a user searches for your plugin, put keywords describing your plugin in the `description` field of the plugin `package.json` file.

Example:

```json
{
"name": "vue-cli-plugin-apollo",
"version": "0.7.7",
"description": "vue-cli plugin to add Apollo and GraphQL"
}
```

You should add the url to the plugin website or repository in the `homepage` or `repository` field so that a 'More info' button will be displayed in your plugin description:

```json
{
"repository": {
"type": "git",
"url": "git+https://github.com/Akryum/vue-cli-plugin-apollo.git"
},
"homepage": "https://github.com/Akryum/vue-cli-plugin-apollo#readme"
}
```

![Plugin search item](/plugin-search-item.png)


## Publish Plugin to npm

To publish your plugin, you need to be registered an [npmjs.com](npmjs.com) and you should have `npm` installed globally. If it's your first npm module, please run
4 changes: 4 additions & 0 deletions docs/guide/html-and-static-assets.md
Original file line number Diff line number Diff line change
@@ -39,6 +39,10 @@ By default, a Vue CLI app will automatically generate prefetch hints for all Jav

The hints are injected using [@vue/preload-webpack-plugin](https://github.com/vuejs/preload-webpack-plugin) and can be modified / deleted via `chainWebpack` as `config.plugin('prefetch')`.

::: tip Note for multi page setups
When using a multipage setup, the plugin name above should be changed to match the structure 'prefetch-{pagename}', for example 'prefetch-app'.
:::

Example:

``` js
2 changes: 1 addition & 1 deletion docs/guide/installation.md
Original file line number Diff line number Diff line change
@@ -9,7 +9,7 @@ If you have the previous `vue-cli` (1.x or 2.x) package installed globally, you
Vue CLI requires [Node.js](https://nodejs.org/) version 8.9 or above (8.11.0+ recommended). You can manage multiple versions of Node on the same machine with [nvm](https://github.com/creationix/nvm) or [nvm-windows](https://github.com/coreybutler/nvm-windows).
:::

To install the new package, use one of those commands:
To install the new package, use one of the following commands. You need administrator privileges to execute these unless npm was installed on your system through a Node.js version manager (e.g. n or nvm).

``` bash
npm install -g @vue/cli
2 changes: 1 addition & 1 deletion docs/ru/guide/browser-compatibility.md
Original file line number Diff line number Diff line change
@@ -42,7 +42,7 @@

Подробнее можно изучить в [документации @babel-preset/env](https://new.babeljs.io/docs/en/next/babel-preset-env.html#usebuiltins-usage).

### Полифилы при сборки библиотеки или веб-компонентов
### Полифилы при сборке библиотеки или веб-компонентов

При использовании Vue CLI для [сборки библиотеки или веб-компонентов](./build-targets.md), рекомендуется указывать `useBuiltIns: false` для `@vue/babel-preset-app` чтобы отключить автоматическое добавление полифилов. Это гарантирует, что вы не добавляете ненужные полифилы в свой код, потому что полифилами должно будет заниматься приложение, где они будут использоваться.

2 changes: 1 addition & 1 deletion docs/ru/guide/css.md
Original file line number Diff line number Diff line change
@@ -121,7 +121,7 @@ module.exports = {
sass: {
// @/ это псевдоним к каталогу src/ поэтому предполагается,
// что у вас в проекте есть файл `src/variables.scss`
data: `@import "@/variables.scss";`
data: `@import "~@/variables.scss";`
},
// передача настроек Less.js в less-loader
less:{
Loading