npm eslint-config软件包是否应该将其扩展的配置软件包放置在devDependencies中?

时间:2018-12-20 04:44:41

标签: dependency-management eslint package.json

我正在npm上发布可共享的eslint-config。我的配置扩展了eslint-config-airbnb。我应该安装eslint-config-airbnb作为devDependency吗?

当我npm i --save-dev eslint-config-myconfig在另一个项目中时,eslint-config-myconfig依赖项是否会捆绑在生产版本中?

//index.js
module.exports = {
  "extends": "airbnb",
  "rules": {... my overrides}
}

//package.json
...
  "peerDependencies": {
    "eslint": ">= 4"
  },
  "dependencies": {
    "eslint-config-airbnb": "^17.1.0",
    "eslint-plugin-import": "^2.14.0",
    "eslint-plugin-jsx-a11y": "^6.1.2",
    "eslint-plugin-react": "^7.11.1"
  }

https://eslint.org/docs/developer-guide/shareable-configs#creating-a-shareable-config

1 个答案:

答案 0 :(得分:0)

我只是想知道同一件事,而您提供的链接实际上解释了所有这些情况:

  

如果您的可共享配置依赖于插件,则还应将其指定为peerDependency(将相对于最终用户的项目加载插件,因此要求最终用户安装所需的插件)。但是,如果您的可共享配置依赖于第三方解析器或其他可共享配置,则可以将这些程序包指定为依赖项。

所以

  • 将自身和插件删掉→peerDependency
  • 解析器和配置→依赖关系

在您的情况下,这三个插件必须移到对等依赖项中。