代码之家  ›  专栏  ›  技术社区  ›  volos

eslint没有无关依赖关系问题

  •  0
  • volos  · 技术社区  · 7 年前

    我对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命令,所有操作都按预期工作,并显示错误。

    我做错什么了?

    0 回复  |  直到 7 年前