需要验证我对开发依赖性和依赖性的理解

Need validation of my understanding of dev-dependencies and dependencies

我是初学者(学习网络开发大约 15 天),我目前正在学习 React 等,如果这听起来太琐碎,我很抱歉。

我想了解 devDependencies 和 dependencies 之间的区别以及它们的正确用法。

我试图从文档和 Whosebug 问题中找出答案,但我不能 100% 确定我是否正确。所以请回顾一下我目前的理解,让我知道到目前为止我是否有这个权利。

定义

正确使用的重要性

相当重要,因为从依赖项中正确排除 devDependencies 可以使应用程序更轻。同时,错误地排除必需的依赖项会导致我的应用程序崩溃。

实例

在我的教程创建的 package.json 文件中,我有以下包,我提到了根据我目前的理解包应该具有的依赖类型。如果我在某处犯错,请告诉我:

如果我有任何错误,请告诉我

devDependencies 是仅在您的开发环境中需要的依赖项,或者是您构建 UI 所需的依赖项,例如 nodemon 是一个开发依赖项,因为您将永远不要 运行 你的应用程序。

将 devDependencies 与普通依赖项分开的优点之一是在构建最后一层时图像尺寸较小docker。

例如,在我的 docker 文件中,我将 运行 一组测试并构建 UI ,这需要 npm install 但是在构建最终图像时实际上 运行 我将通过 docker 简单地复制构建的 UI 文件然后我将 运行 npm install --production 这样我的 devDependencies 就不会安装并膨胀我的 node_modules 文件夹。

希望对您有所帮助。

devDependencies 是仅在您的 Web 应用程序 主动开发 期间才需要的模块依赖项。例如,当您将新功能编码到 Web 应用程序中时。很多 devDependencies 将使您的开发更容易,并且可以提供 linting、捆绑、转译等功能...

相比之下,常规 dependencies 是在您的 Web 应用程序运行时 期间必需的模块。 IE。当其他用户想要与您的 Web 应用程序交互时,这些是您的 Web 应用程序正常工作所必需的依赖项。

注意:我所说的模块是指您正在利用的库中的底层代码。可以找到更完整的定义 here

您对包含比生产包所需代码更多的担忧是有道理的,我建议您阅读更多有关 Cost of JavaScript 的内容。然而,一开始我会鼓励人们首先获得一个可用的代码库,并随着技能的增长不断迭代和改进你的代码。不断提高性能。

最后,一些常见类型的 devdependencies 包括用于测试代码库、构建、缩小、捆绑、转译和 linting 代码的库。

希望对您有所帮助!