禁止无外部依赖问题

时间:2018-09-28 12:03:28

标签: eslint eslint-config-airbnb

我对陪同规则import/no-extraneous-dependencies有疑问

需要做什么。如果js文件已导入,但在最接近的父package.json中不存在包wich,则显示错误。

规则说明: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();

momentpackage.json中不存在,但是当我使用配置运行eslint时,它没有显示错误:

./node_modules/eslint/bin/eslint.js -c ./eslintrc.js ./index.js

结果-什么都没有,但是当我更改eslintrc.js"devDependencies": true,,然后添加到index.js import 'eslint';并重新运行CLI命令时,所有操作均按预期进行,并且显示错误。 / p>

我做错了什么?

0 个答案:

没有答案