首页 > 解决方案 > eslint no-extraneous-dependencies 问题

问题描述

我对 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

包.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.jsline "devDependencies": true,,然后添加到 index.jsimport 'eslint';并重新运行 CLI 命令时,一切都按预期工作,并且显示错误。

我做错了什么?

标签: eslinteslint-config-airbnb

解决方案


推荐阅读