Eslint следует указывать в зависимостях проекта, а не devDependencies
Либо я не понимаю dependencies
vs. devDependencies
в node 100%, либо eslint здесь просто неправильно (не способен правильно это проанализировать):
3:1 error 'chai' should be listed in the project dependencies, not devDependencies import/no-extraneous-dependencies
4:1 error 'chai-enzyme' should be listed in the project dependencies, not devDependencies import/no-extraneous-dependencies
5:1 error 'enzyme' should be listed in the project dependencies, not devDependencies import/no-extraneous-dependencies
7:1 error 'sinon' should be listed in the project dependencies, not devDependencies import/no-extraneous-dependencies
9:1 error 'redux-mock-store' should be listed in the project dependencies, not devDependencies import/no-extraneous-dependencies
Это тестовые зависимости, поэтому почему они говорят, что они должны быть перечислены в dependencies
?
Дополнительное примечание: мы используем Travis как наш CI, поэтому я не знаю, действительно ли это имеет значение для этого.
Ответы
Ответ 1
Решил это, добавив это в мой .eslintrc
:
"import/no-extraneous-dependencies": ["error", {"devDependencies": true}]
[no-extraneous-dependencies] Добавить исключения? # 422
Основываясь на этом ответе пользователя:
вы можете установить опцию devDependencies: true в .eslintrc в вашем тестовая папка:
rules: import/no-extraneous-dependencies: [error, {devDependencies: true}] Затем вы получите отчеты о любых пакетах, на которые ссылаются, которые не включены зависимости или devDependencies. Затем вы получаете добротность правила, без шума от отключенных комментариев.
Я думаю, что это может сработать для вас? Вот как я бы использовал правило, в ваш случай, так как ваш тестовый код разделен на тест каталог.
Также этот пост был полезен, чтобы подтвердить, что я не был сумасшедшим, чтобы не хотеть некоторых из них в моем списке зависимостей: Sharable ESLint Config
Ответ 2
Если вы хотите разрешить импорт devDependencies
в тестовых файлах, вы можете использовать array of globs
, поскольку документация о состоянии no-extraneous-dependencies
:
При использовании массива глобусов для параметра будет задано значение true (об ошибках не сообщается), если имя помеченного файла совпадает с одним глобусом в массиве, и false в противном случае.
Следующая настройка отключит пух только для тестовых файлов.
"import/no-extraneous-dependencies": ["error", {"devDependencies": ["**/*.test.ts", "**/*.test.tsx"]}]
Таким образом, импорт из devDependencies
по-прежнему регистрируется как ошибки.
Ответ 3
Вы devdeependencies не используются в производстве.
Я так понимаю, вы все еще хотите запустить свои тесты в режиме производства, правда?
Поэтому имеет смысл иметь их в зависимостях