登录 注册写文章
首页下载APP
dependencies 和 devDependencies 区别
大侠叫谁关注赞赏支持dependencies 和 devDependencies 区别
当我们项目需要下载一个模块的时候,我们安装npm包(在项目目录下面npm install module_name)的时候,很多时候我们会在后面加上–save-dev 或 –save。这两个参数代表什么呢?
初识
相信很多人都会回答:
npm install module-name -save 自动把模块和版本号添加到dependencies部分
npm install module-name -save-dev 自动把模块和版本号添加到devdependencies部分
dependencies是什么呢? 生产环境。 devdependencies是什么呢? 开发环境。
网上也可以查到很多资料,大概回答意思是,我们搭建一个webpack+react+es6的项目,像webpack babel这种负责打包编译的,我们就应该装在开发环境,像react之类的装在生产环境。
可是为什么呢?
我们不能告诉我们这样做,我们就只这样做,我们要知之其所以然呀。
恩。我试着吧react放进了dependencies,打包出来的文件依然可以运行,并没有什么问题。
why ???难道文档只是建议而已吗???
实质区别
如果我们只是单纯的做项目,那么我们可简单地认为生产环境和开发环境做为一种友善的提示,实质没有什么区别;但是,如果在发布npm包的时候,两种环境安装方式是有很大区别的!!!
假设有以下两个模块:
模块A
- devDependencies
模块B
- dependencies
模块C
模块D
- devDependencies
模块E
- dependencies
模块A
npm install D的时候, 下载的模块为:
- D
- A
- C
当我们下载了模块D的源码,并且在根目录下npm install, 下载的模块为:
- A
- C
- E
所以,在发布npm包的时候,本身dependencies下的模块会作为依赖,一起被下载;devDependencies下面的模块就不会自动下载了;但对于项目而言,npm install 会自动下载devDependencies和dependencies下面的模块。
本篇博客内容来自:guxinyan.github.io/2017/11/02/…
推荐阅读更多精彩内容
- Vue中的package.json里面dependencies和devDependencies区别 dependencies: 应用能够正常运行所依赖的包。这种 dependencies 是最常见的,用户在使用 n... 雨伞不挡雨阅读 3,851评论 0 赞 0
- 转载:程序猿(-,11-24) @synthesize和@dynamic分别有什么作用?@property有两个对应的词,一个是 @synthes... 笔笔请求阅读 115评论 0 赞 0
- java成品源码 - 草稿 - 草稿 ¥开启¥ 【雷霆战机】 〖http://pan.baidu.com/s/1kVstszX〗 《解压源码后直接用AI... 小菜c阅读 2,356评论 1 赞 5
- 张居正讲解《大学》之第五十七章 【原文】是故君子有大道,必忠信以得之;骄泰以失之。 【张居正讲解】君子,是有位的人。大道,是絜矩之道。其端发于吾心... 田春馨阅读 61评论 0 赞 0
- 如何科学地使用邮件客户端 昨天的情怀惨遭打击,今日还是老老实实每日一贴,分享一点实用的干货。像下面这张图一样干。 下周阿尔伯特就要分享如何科... 狂奔犀牛阅读 826评论 0 赞 0