Как использовать более 1 набора правил в extends в файле eslint yaml? - PullRequest
0 голосов
/ 08 марта 2020

Если у меня есть

env:
  commonjs: true
  es6: true
  node: true
extends:
- plugin:mocha/recommended
...

, я не получаю ошибки, то есть linting проходит с

eslint .

, но если я попытаюсь добавить eslint:recommended в дополнение к мокко, то есть

env:
  commonjs: true
  es6: true
  node: true
extends:
- eslint:recommended
- plugin:mocha/recommended
...

Я получаю множество ошибок, поскольку mocha один не применяется

71:3   error  'it' is not defined          no-undef  <-- from the mocha tests

Как я могу иметь обе рекомендации в файле yaml?

1 Ответ

0 голосов
/ 08 марта 2020

Это не имеет ничего общего с использованием файла YAML, и плагин Mocha - , применяемый в обоих случаях. Первый проход проходит, потому что без eslint:recommended, правило no-undef не включено . Например, с учетом следующей базовой установки c:

temp/
  node_modules/
  .eslintrc.yml
  package.json
  package-lock.json
  test.js

Где test.js содержит:

describe("something",function () {
  it("should pass linting", function () {});
});

и .eslintrc.yml содержит:

extends:
- plugin:mocha/recommended

тогда ворсование проходит. Но если я просто добавлю это одно правило:

extends:
- plugin:mocha/recommended
rules:
  no-undef: error

, тогда произойдет сбой лининга с:

path/to/temp/test.js
  1:1  error  'describe' is not defined  no-undef
  2:3  error  'it' is not defined        no-undef

✖ 2 problems (2 errors, 0 warnings)

Per в документации по конфигурации , вам необходимо установить environment для глобалов, которые будут определены; например, следующая конфигурация вернулась к передаче:

env:
  mocha: true
extends:
- plugin:mocha/recommended
rules:
  no-undef: error

Теперь вы можете включить полный набор рекомендуемых правил и по-прежнему проходить линирование:

env:
  mocha: true
extends:
- eslint:recommended
- plugin:mocha/recommended
...