package.json中的devdependencies和dependencies的区别

2023-12-27 06:38

本文主要是介绍package.json中的devdependencies和dependencies的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

网上有很多关于devdependencies 和 dependencies区别的文章,看了下,都没有说到重点。

其实官网已经说得非常清楚了

https://docs.npmjs.com/cli/v6/configuring-npm/package-json#devdependencies

如果还是不理解,下面这个文章很好

https://www.yuque.com/docs/share/963e29e1-3314-453f-b417-d8ce543b78cc

我的理解是,如果不是发布npm包例如我们常用的就是clone源码,然后npm install,这样的话,这两个地方包含的依赖都会被正确下载到 node_modules 里。——意思就是,没区别

但是,如果你要发布npm包,那就要注意了,这种情况如果有人想使用你的npm模块,npm install只会下载在dependencies的依赖。举个例子,你做了个日历插件,用到了element.js,没有把它放在dependencies,而是放在了devdependencies,那别人使用你的日历插件的时候就会报错,因为在dependencies找不到element.js。

另一种,假如你把“无用”的依赖放在了dependencies,那会导致使用的时候下载多余的文件。还是这个例子,你做了个日历插件,为了方便使用了webpack来打包,那这个webpack就应该放在devdependencies,放在dependencies虽然不会导致错误,但是别人使用的时候明明不需要却下载了webpack。所以,这里的“无用”是指开发时需要,但是上线以后就不用了。

总结一下,如果不是发布npm包,devdependencies和dependencies没有区别,你的依赖放其中哪个都行。当然,为了规范,还是不要乱写。所以不管是不是要发布npm包,都要做好规范。那么如何判断一个依赖放哪里呢?element.js是一个组件库,项目一直需要它,放dependencies;而webpack是为了方便打包上线,打包上线后就用不到了,放devdependencies。

常见的几种情况:

devdependencies:babel-corebabel-eslint、等babel系列,autoprefixerwebpackwebpack-dev-server*-loader loader系列等等

dependencies:reactvuereact-reduxreact-router-dom

这篇关于package.json中的devdependencies和dependencies的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/542200

相关文章

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

MySQL中VARCHAR和TEXT的区别小结

《MySQL中VARCHAR和TEXT的区别小结》MySQL中VARCHAR和TEXT用于存储字符串,VARCHAR可变长度存储在行内,适合短文本;TEXT存储在溢出页,适合大文本,下面就来具体的了解... 目录一、VARCHAR 和 TEXT 基本介绍1. VARCHAR2. TEXT二、VARCHAR

java中判断json key是否存在的几种方法

《java中判断jsonkey是否存在的几种方法》在使用Java处理JSON数据时,如何判断某一个key是否存在?本文就来介绍三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目http://www.chinasem.cn录第一种方法是使用 jsONObject 的 has 方法

Go语言中json操作的实现

《Go语言中json操作的实现》本文主要介绍了Go语言中的json操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 一、jsOChina编程N 与 Go 类型对应关系️ 二、基本操作:编码与解码 三、结构体标签(Struc

python中getsizeof和asizeof的区别小结

《python中getsizeof和asizeof的区别小结》本文详细的介绍了getsizeof和asizeof的区别,这两个函数都用于获取对象的内存占用大小,它们来自不同的库,下面就来详细的介绍一下... 目录sys.getsizeof (python 内置)pympler.asizeof.asizeof

Vue3 如何通过json配置生成查询表单

《Vue3如何通过json配置生成查询表单》本文给大家介绍Vue3如何通过json配置生成查询表单,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录功能实现背景项目代码案例功能实现背景通过vue3实现后台管理项目一定含有表格功能,通常离不开表单

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

C#下Newtonsoft.Json的具体使用

《C#下Newtonsoft.Json的具体使用》Newtonsoft.Json是一个非常流行的C#JSON序列化和反序列化库,它可以方便地将C#对象转换为JSON格式,或者将JSON数据解析为C#对... 目录安装 Newtonsoft.json基本用法1. 序列化 C# 对象为 JSON2. 反序列化

Python中Json和其他类型相互转换的实现示例

《Python中Json和其他类型相互转换的实现示例》本文介绍了在Python中使用json模块实现json数据与dict、object之间的高效转换,包括loads(),load(),dumps()... 项目中经常会用到json格式转为object对象、dict字典格式等。在此做个记录,方便后续用到该方