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

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


当前回答

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

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

其他回答

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

简短回答:

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

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

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

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

一个简单的解释让我更加清楚:

部署应用程序时,需要安装依赖项中的模块,否则应用程序将无法工作。devDependencies中的模块不需要安装在生产服务器上,因为您不是在该机器上开发的。链接

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

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

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

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

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

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