dependencies 和 devDependencies 区别重新认识

最近使用webpack在写一个内部npm库插件,但遇到一个问题,在本地使用yarn和cnpm都可以正常下载,去到公司用的openshift自动发布系统上就怎么都没法把这个库down下来,于是各种排查,其中排查到下载的node_modules包里自己写的插件还会有一个node_modules包,怀疑是不是这里出了问题。

在之前的认识中只知道,vue打包到生产的文件要放到dependencies中,而本地开发的,类似webpack这种就放到devDependencies中,但没有细想一个问题,就是平常生产上都是用了vue build后的文件,那放到这个dependencies中其实也就没有存在还要额外依赖包的问题,于是继续往下打,发现原来区别如下: 问:

npm install --save-dev会保存到devDependencies中,npm install --save会保存到dependencies。 我在项目中用了vue-video插件,只存到了devDependencies中,打包以后插件也能正常运行。可dependencies中没有存,为什么插件不会报错?不是运行时依赖吗?

答: 这个dependencies做前端的时候不会有问题,因为最终代码都打包到发布文件里面去了。 写nodejs应用的时候很明显。nodejs没有打包这一说,需要的外部模块都是node_modules目录下的。

nodejs安装依赖有两种方法,一种是全部安装npm install,一种是安装生产环境的npm install --production

  1. dependencies 中的两种模式都会安装
  2. devDependencies 生产模式不会安装

所以生产环境用--production参数可以保证只下载运行应用必须的包。 比如我们开发时用到eslint,那这种需要放到devDependencies 中去,因为这种有没有这个包都不影响服务端代码的执行,只是约束开发时的代码风格。

本文由博客一文多发平台 OpenWrite 发布!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值