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包的时候,两种环境安装方式是有很大区别的!!!
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
假设有以下两个模块:
模块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下面的模块。
dependencies和devDependencies的区别?的更多相关文章
- dependencies与devDependencies的区别
npm install在安装node模块时,有两种命令参数可以把它们的信息写入package.json文件: –save –save-dev 但它的文档里1,只提到一个小区别,–save会把依赖包名称 ...
- dependencies 与 devDependencies 的区别
dependencies 与 devDependencies 的区别 在使用 npm install 安装 npm 包时,有两种命令参数可以把它们的信息写入 package.json 文件: --sa ...
- package.json文件中dependencies和devDependencies的区别
在工作和学习中,我经常会用的npm 下载各种包,有时就会遇到各种npm 的形式,现在就捋一捋 首先要先了解 package.json文件中dependencies和devDependencies的 ...
- #006 dependencies和devDependencies的区别
dependencies 和 devDependencies 区别 在 npm 中的 package.json ,有两种插件的依赖包配置形式。 dependencies 和 devDependenci ...
- dependencies与devDependencies的区别----npm install
npm install在安装node模块时,有两种命令参数可以把它们的信息写入package.json文件. –save –save-dev 那二者的区别在哪里呢? –save会把依赖包名称添加到pa ...
- cnpm install -S 与cnpm install -D (dependencies和devDependencies的区别)
npm install takes 3 exclusive, optional flags which save or update the package version in your main ...
- dependencies和devDependencies两者区别
在npm生成的package.json文件中,有devDependencies和dependencies两个环境 devDependencies 用于开发环境(本地) dependencies 用于生 ...
- npm package.json中的dependencies和devDependencies的区别
转载:http://www.cnblogs.com/jes_shaw/p/4497836.html 一个node package有两种依赖,一种是dependencies一种是devDependenc ...
- package.json中dependencies 与devDependencies 的区别
首先,dependencies中安装的依赖是生产环境的依赖,即项目要运行所必须安装的包:devDependencies中安装的的依赖是开放环境的依赖,即在开发项目时需要安装的依赖. 其次,在安装依赖的 ...
随机推荐
- Git上传相关资料
############ssh key及 配置信息############# 设置Git的user name和email: $ git config --global user.name " ...
- SVN服务器搭建与配置管理
1.下载和搭建SVN服务器 现在Subversion已经迁移到Apache网站上了,下载地址:http://subversion.apache.org/packages.html,这是二进制文件包的下 ...
- Amoeba 实现MySQL读写分离
Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy,它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送到特定的数据库上执行.基于此可以实现负载均衡. ...
- model attribute
model attribute,字面意思,给model加attribute以配置数据库 主键 public class OrderDetail { [Key] public int OrderDeta ...
- Elasticsearch入门教程(五):Elasticsearch查询(一)
原文:Elasticsearch入门教程(五):Elasticsearch查询(一) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:h ...
- Git复习(四)之解决冲突
解决冲突 合并分支往往也不是一帆风顺的 假设:我们从master创建了一个新的分支feature1更改了最后一行提交,我们切换到master分支也更改了最后一行提交,现在,master分支和featu ...
- 对ArrayList中的Person对象按照先年龄从大到小,相同年龄的再按照姓名(姓名是英文的)的字母顺序进行排序.
ListDemo2.java ----------------- package com.fs.test; import java.util.ArrayList; import java.util.C ...
- 使用python的selenium库刷超星网课
网课很多看不完呀 所以动手做了一个基础的自动答题和下一节的程序 用到了python 3 selenium Chrome 如何自动化Chrome?https://www.cnblogs.com/eter ...
- iOS H5页面打开APP技术总结
iOS端H5页面打开APP的方式目前主要有两种:URL Scheme和Universal Links.其中Universal Links是iOS9.0以后推出的一种新的方案,由于它需要在iOS9.0以 ...
- CentOS 7系统时间与实际时间差8个小时
1.查看系统时间: [root@localhost sysconfig]# timedatectl Local time: 一 2017-11-06 21:13:19 CST Universal ti ...