开发依赖与运行依赖

1. 概念

开发依赖:devDependencies 

运行依赖:dependencies 

2. 理解

(1)devDependencies

  在线上状态不需要使用的依赖,就是开发依赖。为什么 npm 要把它单独分拆出来呢?最终目的是为了减少 node_modules 目录的大小以及 npm install 花费的时间。因为 npm 的依赖是嵌套的,所以可能看上去 package.json 中只有几个依赖,但实际上它又扩散到 N 个,而 N 个又扩散到 N 平方个,一层层扩散出去,可谓子子孙孙无穷尽也。如果能够尽量减少不使用的依赖,那么就能够节省线上机器的硬盘资源,也可以节省部署上线的时间。那么哪些可以算作开发依赖呢?如各种 babel-plugin-**-loader、webpack

(2)dependencies (线上运行依赖)

  这是 npm 最基本的依赖,通过命令 npm i xxx -S 或者 npm i xxx --save 来安装一个包,并且添加到 package.json 的 dependencies 里面(这里 i 是 install 的简写,两者均可)。如果直接只写一个包的名字,则安装当前 npm registry 中这个包的最新版本;如果要指定版本的,可以把版本号写在包名后面,例如 npm i webpack@3.0.0 --save。那么哪些可以算作开发依赖呢?如 axios、vue、vuex、vue-router等。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
区分开发依赖和生产依赖的一种常见方法是使用构建工具,如 Maven 或 Gradle 中的不同依赖配置。 在 Maven 中,常见的依赖配置有: 1. `compile`:用于生产代码编译和运行时所需的依赖。这些依赖将被打包到最终的应用程序中。 2. `test`:用于单元测试代码编译和运行时所需的依赖。这些依赖只在测试过程中使用,不会被打包到最终的应用程序中。 3. `provided`:用于编译和运行时所需的依赖,但是由部署环境(如应用服务器)提供。这些依赖开发和测试过程中需要,但在部署时不需要打包到应用程序中。 4. `runtime`:仅在运行时所需的依赖。这些依赖在应用程序运行时需要,但不参与编译过程。 在 Gradle 中,常见的依赖配置有: 1. `implementation`:用于生产代码编译和运行时所需的依赖。这些依赖将被打包到最终的应用程序中。 2. `testImplementation`:用于单元测试代码编译和运行时所需的依赖。这些依赖只在测试过程中使用,不会被打包到最终的应用程序中。 3. `compileOnly`:用于编译时所需的依赖,但在运行时不需要。这些依赖开发和测试过程中需要,但在部署时不需要打包到应用程序中。 4. `runtimeOnly`:仅在运行时所需的依赖。这些依赖在应用程序运行时需要,但不参与编译过程。 通过使用不同的依赖配置,你可以明确指定每个依赖项的作用和范围,从而区分开发依赖和生产依赖。这样可以确保在构建和部署应用程序时只包含必需的依赖项,减小应用程序的大小和复杂性。 希望这个解答对你有帮助!如果你还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_揽

苦der程序员敲代码

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值