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

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


当前回答

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

其他回答

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

使现代化

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

我想在回答中补充我对这些依赖性解释的看法

依赖项用于直接在代码库中使用,通常会在生产代码中使用,或代码块中使用devDependencies用于构建过程、帮助您管理最终代码的方式的工具、第三方测试模块(例如webpack)

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

npm install "$package" --save-dev

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

npm install --production

有些模块和软件包仅用于开发,而在生产中不需要。就像文档中所说的:

如果有人计划在他们的程序中下载并使用您的模块,那么他们可能不想或不需要下载并构建您使用的外部测试或文档框架。在这种情况下,最好在devDependencies散列中列出这些附加项。

我找到了一个简单的解释。

简短回答:

从属关系“……是您的项目真正需要能够在生产中工作的那些。”

devDependencies“…是您在开发过程中需要的。”

对等依赖关系“如果要创建和发布自己的库,以便将其用作依赖项”

本帖中的更多详细信息:https://code-trotter.com/web/dependencies-vs-devdependencies-vs-peerdependencies