需要验证我对开发依赖和依赖的理解
我是一个初学者(学习Web开发大约15天,目前正在学习React等,如果这听起来太琐碎,我感到抱歉。
我试图了解devDependencies和依赖关系之间的区别以及正确的用法。
我试图从文档和stackoverflow问题中弄清楚,但我不确定100%是否拥有此权利。因此,请回顾一下我到目前为止的理解,并告诉我到目前为止我是否有此权利。
定义
依赖关系:只有最终将由生产版本使用的软件包。这些将在最终的package.json文件中。
devDepndencies:简化了我的开发工作并且最终不会被产品/应用程序使用的软件包。这些将不会包含在最终版本的package.json文件夹中。
正确用法的重要性
非常重要,因为正确地从依赖项中排除了devDependencies可以使应用程序更轻便。同时,错误地排除必需的依赖项会导致我的应用程序损坏。
实际示例
在本教程中创建的package.json文件中,我具有以下软件包,并且根据当前的理解,我提到的是该软件包应具有的依赖类型。如果我在某处犯错误,请告诉我:
- babel-cli:devDependency
- babel-core:devDependency
- babel-loader:devDependency
- babel-plugin-transform-class-properties:devDependency
- babel-preset-env:devDependency
- babel-preset-react:devDependency
- css-loader:devDependency
- node-sass:依赖项
- 反应:依赖项
- react-dom:依赖项
- 反应模式:依赖项
- sass-loader:依赖项
- style-loader:依赖项
- 验证者:依赖项
- webpack:开发依赖
- webpack-dev-server:dev-dependency
如果有任何错误,请告诉我
回答如下:devDependencies是仅在开发环境中需要的依赖关系,或者是构建UI所需的依赖关系,例如,nodemon是dev依赖关系,因为您永远不会使用它来运行应用程序。
将devDependencies与常规依赖项分开的优点之一是,在构建最终层时,较小的docker映像大小。
例如,在我的dockerfile文件中,我将运行一组测试并构建需要npm安装的UI,但是在构建将要实际运行的最终映像时,我将仅通过docker复制构建的UI文件,然后我将运行npm install --production,这样我的devDependencies就不会安装并膨胀我的node_modules文件夹。
希望这会有所帮助。