* 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
Fixes#4694Fixes#4695
Fix the "ENOENT: no such file or directory … debugnode_module/sms/index.js" error.
The problem are caused by 2 issues:
1. The `lint-staged` packages introduced an old version of debug,
causing node_module deduping, thus changing the node_module layout
2. The dependencies required in the cached `lint` module is no longer at
its originial position, thus the "ENOENT" error.
This change still does not fix the PNPM 4 issue, considering its smaller
user base, we'll fix it later.
Maybe caused by the change of resolve mechanism in pnpm 4,
calling the hook from the creator would get a `Cannot find module`
error. As a workaround, we now require and cache the module outside the
callback function.
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:
Users will have to explicitly list their required ESLint version in the
project's package.json.
The major concern behind this change is that ESLint release schedule is
never aligned with Vue CLI's.
See https://eslint.org/blog/2019/04/eslint-v6.0.0-alpha.0-released
So even if we upgraded our built-in ESLint version to v5, we'll see a
new major release of ESLint in the coming months. Meanwhile we can't
easily upgrade the built-in ESLint version again without bumping our
major version number. This could become a maintenance nightmare.