* 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.
* refactor(migrator): rename `installed` to `baseVersion`
* feat: `vue upgrade --from` option and a new `vue migrate` command
* fix: fix support for `vuePlugins.resolveFrom` option
* chore: add a fixme comment
* fix: use loadModule instead of manually calculating the package.json path
This also fixes support for monorepo.
(TODO: tests)
* fix: treat `resolveFrom` as `context`, fixing edge cases
* fix: use read-pkg instead of loadModule, avoid messing up require cache
* fix: getInstalledVersion still requires `loadModule` to support monorepo
* refactor: extract deps & config logic to separate files
* feat: implement a migrator to upgrade to eslint 6
* fix: add required deps for eslint v4
* test: move migrator tests to each standalone plugins
* refactor: use spread operator instead of Object.assign
* feat: scaffold projects with eslint 6
* style: eslint fix
* refactor: do not use hard-coded ecmaVersion, use babel-eslint for now
* fix: upgrade to @vue/eslint-config-standard
* style: continue fix lint errors
* chore: upgrade to eslint-plugin-vue@^6.1.2
* refactor: use `ecmaVersion: 2020` for dynamic import syntax support
* test: fix baseESLintConfig
* chore: also update yarn.lock to fix CI caches
* chore: update lockfile again, fix babel regressions
* test: nightwatch tests should fail if lint errors occur
* chore: update the lockfile (again), fixing a bug in airbnb config
* 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
The current cypress config has a global eslint-disable:
typescript
```
/* eslint-disable import/no-extraneous-dependencies, global-require, arrow-body-style */
// const webpack = require('@cypress/webpack-preprocessor')
```
But this assumes that `eslint-import-plugin` is present, whereas this is only true when the selected preset is the Airbnb one.
In other cases, this fails `yarn lint` right away with:
```
error: Definition for rule 'import/no-extraneous-dependencies' was not found (import/no-extraneous-dependencies) at tests/e2e/plugins/index.js```
Even if using the Airbnb preset, the comment does not have any effect, as, by default, the `require` call is commented.
This commit now splits the rules disabling in two:
- one commented for the people using Airbnb and who will uncomment the require call below, as it is only useful for them.
- one activated that disables `arrow-body-style` as it will fail the linting for people using Airbnb preset with the current config.
* fix(e2e-nightwatch): check for correct flag name
flag is documented as `--use-selenium` but we checked for `args['with-selenium']`
fix#5015
* test(e2e-nightwatch): selenium test
uses correct flag now