Commit Graph

129 Commits

Author SHA1 Message Date
Haoqun Jiang
6a750564a8 fix: should check yarn when no pacakage manager specified
(`shouldUseTaobao` is called without arguments in `getPackageVersion`)

fixes #3393
2019-01-31 14:40:13 +08:00
Haoqun Jiang
9c1e797ac6 feat: support dart-sass as default sass implementation (#3321) 2019-01-28 18:51:55 +08:00
musicq
5d1ab5fe9c refactor: check support package manager befor install (#3368) 2019-01-28 11:02:36 +08:00
Haoqun Jiang
108d8011b3 fix: fix injectImports when there's no pre-existing import declarations
closes #2925
2019-01-18 16:12:37 +08:00
Haoqun Jiang
ae2a9bc145 fix: fix typo 2018-12-04 20:51:57 +08:00
Haoqun Jiang
31ffcfe0ca feat: new release strategy (#3020)
## Summary
- Keep package minors in sync (`lerna publish --force-publish` when releasing a new minor)
- Patch on demand (`lerna publish` fixed mode)
- `eslint-config-*` packages are published manually

## Longer Description
1. We used to force publish every package till v3.1, this is due to the unbalanced update frequency among different plugins. In practice, some of them, like the pwa plugin, are quite stable and rarely need updating. So force publishing is overkill now.
2. We have switched to independent mode then, for two major benefits: 1) patching on demand and only on demand 2) eslint config packages needs a more aggressive update strategy in practice, due to the frequent breaking changes in the upstream packages. However, this also causes maintenance burden and confusion to end users. So it's far from ideal.
3. So now we choose to go back fixed versioning. By default lerna would skip untouched packages when publishing a new version. This might be confusing as we think. So to reduce the cognitive load, we still keep each package's minor field in sync.

## Implementation Detail

1. To selectively publish packages, we have to disable `useWorkspaces` in lerna so that these packages can be linked by yarn while being unrecognizable to lerna.
2. Due to an oversight in the old version checking code, version fields in `vue-cli-version-marker` needs to be exact versions, otherwise cli will throw on startup. So we have to publish `vue-cli-version-marker` manually after other package updates. This logic can be removed once all users have been upgrade to 3.2.0+ and we can then add it back to `packages` in `lerna.json`
3. We now use `~/.vuerc` to cache version check results. This also fixes #2956
2018-11-28 02:12:05 +08:00
Haoqun Jiang
044f5b3b7e refactor: use a version map to determine the newest dependency versions
Now that lerna independent mode is used to release new versions, we can
no longer ensure the core service/plugin versions are in sync with
@vue/cli itself. So `vue-cli-version-marker` is now used to store the
latest version map of core packages.

In order to automate this process, all the core cli packages are listed
as `devDependencies` of `vue-cli-version-marker`. This will cause a
cyclic dependency warning in lerna bootstrap, and that warning can be
safely ignored because these are just `devDependencies` which won't
affect end users.

Another gotcha is that the version of `vue-cli-version-marker` will be
bumped each time we do a release. This may break the remote version
check logic before rc.12 (due to
1ae223dfc0 (diff-ac5fc3f8b11df9fc948b8e5aa52a074e)
the background version check might never get executed since rc.12)
2018-11-12 14:24:41 +08:00
Haoqun Jiang
78c7c129dd feat: support yarn for adding inline registry
closes #2809

Yarn supports `--registry` since v1.2.0
2018-10-28 23:28:57 +08:00
katashin
89edf0d341 fix(cli): avoid assertion error when vue.config.js includes assignment expression (#2770) 2018-10-28 11:51:46 +08:00
Haoqun Jiang
7c91a187e4 chore: add link to configuration reference in the generated README.md
fixes #2519
2018-10-09 17:47:37 +08:00
Amy
f99796e627 fix(preset): plugin invoke order don't sort by unicode order (#2656) 2018-10-09 16:59:15 +08:00
Pavan Kumar Sunkara
1a8394434a fix(cli): make sortObject consistent even when keyOrder is given (#2326) 2018-09-25 01:38:33 +08:00
Haoqun Jiang
ba15fa26b2 fix: use sync fs methods in writeFileTree (#2341)
closes #2275

Iterating over async functions would put too many write calls in I/O
queue in the same time, leading to weird bugs.
2018-09-03 22:34:53 +08:00
dailynodejs
53509e115f [polish] word mistake (#2331)
polish registry word mistake
2018-08-23 17:41:56 +09:00
Haoqun Jiang
ecb8c1801f fix: support generator/index.js in local presets (#2263)
fixes #2172
2018-08-20 11:31:04 -04:00
Evan You
3b21fad868 feat: support generator.js and prompts.js in preset 2018-08-08 16:35:57 -04:00
Evan You
1ae223dfc0 refactor: refactor getVersions logic 2018-08-08 11:01:49 -04:00
Evan You
b60dd4b6d3 fix: revert windows config path change, close #1961 2018-07-27 09:08:19 -04:00
Evan You
baa1e0455f refactor: extract rc file loading logic 2018-07-26 22:21:16 -04:00
Evan You
e970b1afc3 feat: store rc file in AppData on windows
close #1957
2018-07-26 21:37:30 -04:00
Evan You
ecd0b8d924 chore: handle package.scripts being empty when generating readme 2018-07-24 11:50:38 -04:00
Pavan Kumar Sunkara
e9d01ebde4 fix(create): Commands added by plugin (through preset) won't have description in README' (#1910) 2018-07-24 09:41:19 -04:00
Evan You
4b4e4609e5 perf: improve CLI startup performance 2018-07-19 16:41:10 -04:00
Evan You
ba4d0f285b refactor(generator): ensure proper deep merge of array values in api.extendPackage
Also fixes #970 by injecting eslint config when invoking ts plugin in an existing project
with eslint plugin installed.
2018-07-18 16:44:03 -04:00
Evan You
ce585490c7 fix: infer rootOptions for late invoked generators
close #1820
2018-07-17 17:07:12 -04:00
Haoqun Jiang
a1097f27e2 fix(create): clear tmpdir before cloning remote preset, fix #1878 (#1880) 2018-07-17 14:40:03 -04:00
Guillaume Chau
08352811e0 feat: local service plugins, closes #1841 2018-07-13 17:39:07 +02:00
Evan You
30dbad8ff1 fix: fix npmignore, prevent version cache from being published 2018-07-13 10:52:55 -04:00
Stephen Lam
e393be733d feat(generator): allow plugins to modify how configs are extracted (#1130)
* feat(generator): allow plugins to modify how configs are extracted

* refactor(cli): change addConfigTransform parameters

Allow plugin author to set config 'descriptions' instead of implementing their own transform functions.

* fix(cli): fix missed issues from changing types from array to set

* fix: use reserved config transforms to check in API

* fix: lines dedupe
2018-07-11 19:52:57 +02:00
Pavan Kumar Sunkara
8eb7fc3a97 fix: Don't allow duplicate injections of import statements and root options by plugins (#1774)
* feat(cli): Don't allow duplicate api.injectImports

* feat(cli): Don't allow duplicate api.injectRootOptions

* chore(cli): Added tests for duplicate injections
2018-07-11 14:05:29 +02:00
Adam Weber
9f0bf082e6 fix: version check ignores cached version. fixes #1613 (#1614) 2018-07-11 13:24:20 +02:00
Thorsten Lünborg
7b3812e248 feat: Create .browserslistrc file when user chose "separate config files" (#1773)
* feat(cli): When selecting "separate config files",
cli should create .browserslistrc file

close #1236

* test(cli): add test for extracting .browserslistrc
2018-07-05 23:11:01 +02:00
Guillaume Chau
8e79e2d1fd fix: generate readme with code blocks 2018-07-05 01:23:01 +02:00
Arthur Denner
278e992fbf feat: Generating README.md (#1717)
* feat: Generating README.md based on the package.json

* refactor: Adding missing scripts, changing descriptions and improving code

* chore: Moving stopSpinner to correct position and adding comment

* chore: Changing description to script test:e2e

* refactor: Removing unnecessary `if`
2018-07-04 13:16:49 +02:00
Guillaume Chau
4c69052a54 fix(ui): wrong context for webpack config, closes 1611 2018-06-19 01:29:37 +02:00
Guillaume Chau
a7f3c2cc45 fix(invoke): deep merge only plain objects 2018-06-18 10:29:33 +02:00
Guillaume Chau
35cb714b30 fix(invoke): merge data in config transforms 2018-06-18 10:05:04 +02:00
Guillaume Chau
8b9477fe54 fix: better version check, closes #1564 2018-06-17 21:55:07 +02:00
Guillaume Chau
3a88152257 refactor(ui): update all plugins in one command which is much quicker 2018-06-16 01:26:38 +02:00
Guillaume Chau
50027c6244 fix: clear children modules from cache 2018-06-13 19:44:45 +02:00
Guillaume Chau
6e1f7357a3 fix(ui): save db in user home 2018-06-10 17:59:45 +02:00
Evan You
79ee90b024 refactor: generator internal tweaks
- avoid hitting the disk again when extracting / extending config files
- normalize paths when reading files before invoking
2018-06-08 18:52:38 -04:00
Kite
6e32164df5 fix: Remove duplicated "the" (#1493) 2018-06-07 10:33:33 +02:00
Evan You
12d51fd433 fix: use fallback module resolve for Node version < 10
The "paths" option for require.resolve does not work in certain
versions of 8.x and 9.x.

close #1486
2018-06-06 14:50:46 -04:00
Evan You
1ddeefc2ee refactor: avoid version check affecting startup time 2018-06-05 15:48:22 -04:00
Evan You
89a0e6561c fix: avoid util.promisify when resolving webpack.config.js
The file may be required by an IDE which uses an older version of Node.

close #1473
2018-06-05 09:47:36 -04:00
Evan You
be5526ed6c fix: bail when registry ping fails
close #1427
2018-06-01 11:45:14 -04:00
Evan You
7ce91c89f2 workflow: enable eslint node/no-extraneous-require 2018-05-30 10:25:33 -04:00
Guillaume Chau
ef2ecf5a8e fix: require.resolve fallback on node < 8.10.0 (#1404)
close #1369
2018-05-30 09:44:08 -04:00
Guillaume Chau
4f2c71896e chore: merge dev 2018-05-21 23:07:52 +02:00