У меня проблема с правилом eslint import/no-extraneous-dependencies
Что нужно сделать.Если файл js имеет импорт с пакетом, которого нет в ближайшем родительском файле package.json - показать ошибку.
Описание правила: https://github.com/benmosher/eslint-plugin-import/blob/HEAD/docs/rules/no-extraneous-dependencies.md
Проект очень прост: Структура папок:
./
├── eslintrc.js
├── index.html
├── index.js
└── package.json
0 directories, 4 files
Package.json:
{
"name": "test",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"license": "ISC",
"dependencies": {
"jquery": "^3.3.1"
},
"devDependencies": {
"eslint": "^5.6.0",
"eslint-config-airbnb": "^17.1.0",
"eslint-plugin-import": "^2.14.0",
"eslint-plugin-jsx-a11y": "^6.1.1",
"eslint-plugin-react": "^7.11.1"
}
}
Мой eslintrc.js
module.exports = {
parserOptions: {
ecmaVersion: 6
},
extends: 'airbnb',
plugins: ['import'],
// custom rules
'rules': {
'import/no-unresolved': 0,
'import/extensions': 0,
"import/no-extraneous-dependencies": ["error",
{
"devDependencies": false,
"optionalDependencies": false,
"peerDependencies": false,
}
]
}
};
my index.js
import moment from 'moment';
moment();
moment
нетв package.json
, но когда я запускаю eslint с моим конфигом, ошибки не отображаются:
./node_modules/eslint/bin/eslint.js -c ./eslintrc.js ./index.js
Результат - ничего, но когда я изменяю eslintrc.js
строку "devDependencies": true,
,затем добавьте в index.js import 'eslint';
и повторите команду CLI, все работает как положено, и отображается сообщение об ошибке.
Что я делаю не так?