将配置添加到 package.json 有什么好处?

And*_*ill 6 configuration frontend web-frontend reactjs package.json

在我的前端项目中,我一直在他们自己的文件中放置不同的“工具配置”。

例如: babel in babel.config.js、 jest in jest.config.js、 eslint in an.eslintrc.json等。

然而,我最近注意到,可以将许多这些配置直接放在项目package.json文件中。

我在网上做了一些挖掘并询问了一些同事,但似乎没有人能给我一个明确的答案,为什么人们可能更喜欢一种方法而不是另一种方法。

这纯粹是喜好问题吗?

Z. *_*tev 8

我的建议是避免填充package.json自定义配置,主要有两个原因。

首先是关于开发人员的期望。将自己置于刚刚开始使用 JavaScript 和 NPM 生态系统的人的位置,您会看到一些未记录的内容,至少不是您期望的位置。这种体验很容易把人们赶走,特别是如果他们来自更严格的开发平台和语言。

其次,关键字冲突或更重要的是这样的想法是可能的。我们不希望 NPM 考虑在未来不使用某些关键字,因为一些闪亮的新库也在使用它,是吗?

另一方面,拥有 babel、browserlist、postcss 的专用文件是更简单、不言自明的方法,并且这些项目中的每一个都已经建议使用专用文件进行配置。


col*_*ner 5

以下是 IMO 配置的优点和缺点package.json

Pro package.json成为您的应用程序包、脚本以及现在的配置的单一事实来源。这是与您的应用程序相关的一切的一站式服务。

Pro它可以整理您的根目录。为所有不同的包提供单独的配置文件会变得混乱。

Con关键字冲突的可能性。如果 Node 推出的新关键字恰好与现有包配置的关键字相匹配,那么您必须要么不使用该关键字,要么将该配置移至单独的文件中。

大多数包文档在其示例中引用了单独的配置文件。这可能会让故障排除或新团队成员感到困惑。

缺点您的package.json文件可能会变得巨大。如果管理许多配置,与其他团队成员发生合并冲突的可能性就会大大增加。

总的来说,这取决于个人喜好。有一些工具,例如 husky ( https://github.com/typicode/husky ),默认情况下会放入配置package.json。我们的团队将两者结合起来。

  • 反对使用 package.json 的原因之一是 .json 不支持注释。js、ts、yml、xml、ini等中的Config都有注释语法。 (2认同)