我对eslint规则有意见
import/no-extraneous-dependencies
需要做什么。如果js文件的import with package不在最近的父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,
}
]
}
};
我的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命令,所有操作都按预期工作,并显示错误。
我做错什么了?