dependencies devDependencies的区别

devDependencies 和 dependencies 的区别你真的知道吗
我其实一直都有个疑问?

为什么有时候安装包需要加后缀-D有时候需要加后缀-S,他们有什么区别呢

原来安装包的时候yarn add antd -S 会把包安装到package.json的dependencies里面

在这里插入图片描述

原来安装包的时候yarn add antd -D 会把包安装到package.json的devDependencies里面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-scReiWz1-1666326741085)(https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/d7a519af8bd44020a7a1c5e41fdc3ed2~tplv-k3u1fbpfcp-watermark.image?)]

那么安装的包放在devDependencies 和 dependencies 里面有什么区别呢

我百度了一下devDependencies 和 dependencies 的区别

得出的结论是

  1. devDependencies用于本地环境开发时候所需要的依赖包。
  2. dependencies用户发布环境,生成上所需要的依赖包

在这里插入图片描述

这是一个访问量很高的博客给出的答案

那么安装在 devDependencies 中的依赖,在项目执行 build 的时候会不会被打包进 dist 产物中?

其实我安装在devDependencies里面的antd在打包的dist文件里面是可以找到的,说明不管是安装在devDependencies 和 dependencies下面的依赖都会被打包到dist文件中

devDependencies 和 dependencies 的真正区别是什么

其实是在我们自己写npm包的时候,package.json有时候也需要引入一些包,也需要注意是安装在devDependencies 和 dependencies下面。那么安装在devDependencies 和 dependencies下面会有什么区别呢

比如antd组件库,在package.json的dependencies里面引入了loadsh,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X8yNfDQ1-1666326741088)(https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/f86f9cec4f78478f98b4a8385b22458f~tplv-k3u1fbpfcp-watermark.image?)]

我自己的项目也引入了loadsh,antd,那么看看我项目的node_modules里面是有lodash文件的,然后也有antd,并且antd目录的node_modules里面也是存在loadsh

在这里插入图片描述

这就得出了一个结论

我们引入的npm包dependencies里面引入的依赖会安装到node_modules里面该包目录下的node_modules里面,devDependencies里面引入的依赖不会安装到node_modules里面该包目录下的node_modules里面。如果antd里面引入的loadsh是4.17.21,我自己项目引入loadsh是6.17.21,那么容易在业务使用中会出现bug。

小结

结论:devDependenciesdependencies的区别核心体现在 npm包 中。只要开发的项目是发npm包提供给外部、其他业务项目使用的,需要非常注意依赖的安装地方,因为搞不好很容易在业务使用中会出现bug。而如果只是自己项目用,不需要发npm包的话,把依赖安装到 devDependencies 或者 dependencies 中,实质上是没有任何区别的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值