这个文档很难回答我的问题。我不明白这些解释。有人能用更简单的话说吗?如果很难选择简单的单词,可以举个例子吗?

EDIT还添加了peerDependencies,它密切相关,可能会引起混淆。


当前回答

例如,mocha通常是一个devDependency,因为在生产中不需要测试,而express则是一个依赖项。

其他回答

依赖项:项目/包需要在生产环境中工作的包。

devDependencies:您的项目/包在开发时需要工作但在生产中不需要的包(例如:测试包)

peerDependencies:您的项目/包需要与之协同工作(与它们“协同工作”)或作为基础的包,主要用于开发插件/组件以了解您的插件/组件应该与哪个版本的“主”包协同工作(例如:React 16)

在尝试分发npm包时,应避免使用依赖项。相反,您需要考虑将其添加到peerDependencies中。

使现代化

大多数时候,依赖关系只是描述您的生态系统的一堆库。除非你真的在使用某个库的特定版本,否则你应该让用户通过将其添加到peerDependencies中来选择是否安装该库以及选择哪个版本。

要将包作为开发依赖项保存到package.json,请执行以下操作:

npm install "$package" --save-dev

运行npm install时,它将同时安装devDependencies和dependencies。要避免安装devDependencies,请运行:

npm install --production

依赖项需要运行,devDependencies仅用于开发

当使用Webpack捆绑前端应用程序时,依赖项和devDependencies之间的区别不是很清楚。对于最终的捆绑包,将依赖项放置在何处并不重要(但对于其他工具来说可能很重要)。这就是为什么文档看起来很混乱。

我在这里找到了解释:在使用Webpack时,“依赖项”和“devDependencies”是否重要?