【问题标题】:eslint don't deal with multiple package.jsoneslint 不处理多个 package.json
【发布时间】:2018-03-19 15:33:28
【问题描述】:

我的项目有两个 package.json

root folder

└ app ---- /public
         └ /styles
         └ /src
         └ package.json
         └ eslintrc.json
         └ webpack.config.js

└ server - /something
         └ /something

└ package.json
└ ...etc

atom 编辑器显示 lint 错误

import React from 'react';
// 'react' should be listed in the project's dependencies. Run 'npm i -S react' to add it (import/no-extraneous-dependencies)

在 package.json 中

"dependencies": {
  "@types/chart.js": "^2.6.8",
  "@types/react": "^16.0.10",
  "@types/react-dom": "^16.0.1",
  "bootstrap": "^4.0.0-beta",
  "chart.js": "2.6.0",
  "font-awesome": "^4.7.0",
  "history": "4.7.2",
  "jwt-decode": "^2.2.0",
  "prop-types": "^15.6.0",
  "react": "^15.6.1",
  "react-chartjs-2": "2.6.1",
  "react-dom": "^15.6.1",
  "react-router-dom": "4.2.2",
  "react-transition-group": "^1.2.0",
  "reactstrap": "^4.8.0",
  "simple-line-icons": "^2.4.1"
},

在 eslintrc.json 中

module.exports = {
  "extends": "airbnb",

  "env": {
     "browser": true,
     "node": true
   },

  "rules": {
     "no-mixed-operators": [2, { "allowSamePrecedence": true }],
     "react/no-find-dom-node": 1,
     "react/no-string-refs": 1,
     "react/no-unused-prop-types": 1, // TODO: enable
     "jsx-a11y/no-static-element-interactions": 1, // TODO: enable
     "no-plusplus": 1, // TODO: enable
     "no-console": 0, // TODO: enable
     "no-alert": 0,
     "max-len": ["error", 120],
     "no-underscore-dangle": ["error", { "allow": ["_isMounted"] }],
     "import/no-extraneous-dependencies": ["error", {"devDependencies": true}],
  },
};

我认为 eslint 将根文件夹中的 package.json 识别为标准。 但我希望它忽略根文件夹中的 package.json 并识别 src 文件夹中的 package.json。

我该怎么办?

【问题讨论】:

  • Hi Buddy 首先我要问你一个问题。你为什么现在使用 eslint?如果只是为了 linting 目的,那么我建议您使用标准 js 而不是 eslint。这样可以节省您的时间,您可以通过输入简单的命令 standard --fix... 来修复小错误
  • @ShravanJain 我还不知道standard.js。我会试试的
  • 我刚刚将标准 JS 与我的项目集成。这很棒。在这里,您无需定义 linting 等所有规则。

标签: javascript npm atom-editor eslint lint


【解决方案1】:

我自己解决了这个问题。

在 .eslintrc.json 中添加了 "packageDir": "./src"

"rules" : {
   ""import/no-extraneous-dependencies": ["error", {"devDependencies": true, "packageDir": "./src"}],

【讨论】:

    【解决方案2】:

    这可能无关紧要,但我要注意的第一项是您可能需要将 ESLint 配置从 eslintrc.json 重命名为 .eslintrc.json(名称前有一个点)。可能不是问题的根源,但可能会干扰分层分辨率。您可以在此处查看多种配置扩展格式:https://eslint.org/docs/user-guide/configuring#configuration-file-formats

    关于import/no-extraneous-dependencies 规则,我认为您可能正在寻找的配置选项是packageDir。在他们的 repo 中引用文档:

    另外还有一个选项叫packageDir,这个选项是指定包含package.json的文件夹的路径,并且是相对于当前工作目录的。

    "import/no-extraneous-dependencies": ["error", {"packageDir": './some-dir/'}]

    希望这会有所帮助!

    来源:

    https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-extraneous-dependencies.md

    【讨论】:

      猜你喜欢
      • 2020-02-09
      • 2019-10-24
      • 2018-01-25
      • 2019-07-30
      • 2022-01-07
      • 1970-01-01
      • 2018-04-16
      • 2018-10-28
      • 2021-07-07
      相关资源
      最近更新 更多