save-dev和save的区别
果你经常用NPM安装依赖包,会注意到安装包时的指令会分--save-dev
和--save
两种,有什么区别呢?
在项目中我们通常会有一个package.json
的配置文件,用来保存项目的相关配置信息,其中最重要的就是该项目的相关依赖包。其他用户在拿到该配置文件时,只需要用npm install
就可以根据配置文件下载相关的依赖包,搭建好与开发者相同的环境。
npm install
到底要安装什么依赖,这些都在配置文件中有标明。下图是一个package.json
文件的内容:
我们上面提到的依赖就是图片中的devDependencies
和dependencies
两项。其中的dependencies
是项目在发布或运行时所依赖的模块和包,而devDependencies
是项目在开发时所依赖的包。
就我的理解而言,devDependencies
中的包都是开发或打包时所需的工具,而在项目打包生成要发布的文件后,devDependencies
中的包对于生成文件就没有任何用处了。反而dependencies
中的包是相关的类库,是发布文件正常运行的环境基础,否则项目就无法正常运行。
因此webpack
类的工具应该是devDependencies
,而jquery
、react
就应该是dependencies
。
讲到这里你应该就明白了,--save-dev
和--save
的区别了。在安装包时加上--save-dev
参数会在成功安装后,package.json
文件的devDependence
下会自动加上包的名称及版本。反之使用--save
,则是在dependencies
下添加依赖信息。
正常使用npm install
时,会下载dependencies
和devDependencies
中的模块,当使用npm install --production
或者注明NODE_ENV
变量值为production
时,只会下载dependencies
中的模块。
save-dev和save的区别的更多相关文章
- npm 安装时 --save --dev 和 --save 区别
一.模式 运行webpack命令时,一定要指定模式. webpack --mode developmentwebpack --mode production二.--save -dev --save:将 ...
- [转] docker save与docker export的区别
[From]http://cnodejs.org/topic/59a2304f7aeedce818249eeb 很久没有写博客了,坟头草都长了老高了.写博客要靠惯性,一旦停下来时间长了,就很难再坚持下 ...
- docker save load export import的区别
export export命令用于持久化容器(不是镜像).所以,我们就需要通过以下方法得到容器ID: sudo docker ps -a 接着执行导出: sudo docker export < ...
- Docker的save和export命令的区别
我最近在玩Docker,一种应用程序容器和Linux的虚拟技术.它太酷了,创建Docker镜像和容器只需要几分钟.所有的工作都是开箱即用的. 在结束我一天的工作之前,我希望能保存下我的工作.但我在Do ...
- npm install 插件 --save与 --save -dev的区别
npm i 插件 ,会把插件安装到node_modules目录中,不会修改package.json, npm i 插件 --save ,项目发布上线之后还会依赖用到的插件,没有这些插件,项目不能 ...
- npm install、npm install --save、npm install --save --dev、npm install -S、npm install -D的区别
npm install X: 会把X包安装到node_modules目录中 不会修改package.json 之后运行npm install命令时,不会自动安装X npm install X –sav ...
- Hibernate里save(),saveOrUpdate(),merge(),update()的区别
save()方法用于将一个临时对象转变为持久化对象,也就是将一个新的业务实体保存到数据库中:update()方法用于将一个游离对象重新转变为持久化对象,也就是更新一个已经存在的业务实体到数据库中:sa ...
- hibernate的save()和persit()之间的区别
这个问题啊,我在传智的Hibernate 视频上有小段讲解,save() 和persist() 都是持久化的保存,这两个方法在已经开启事物的情况下没多大区别:在不开启事物的时候save()方法会把数据 ...
- MongoDB的save 和insert函数的区别
mongodb的save和insert函数都可以向collection里插入数据,但两者是有两个区别: 一.使用save函数里,如果原来的对象不存在,那他们都可以向collection里插入数据,如果 ...
- npm --save 、-D 、--save -dev
npm install 和 npm i 是一样 --save 和 -S 是一样 --save-dev 和 -D 是一样的 区别: -S, --save 安装包信息将加入到dependencies(生产 ...
随机推荐
- Flexible 弹性盒子模型之CSS flex-wrap 属性
实例 让弹性盒元素在必要的时候拆行: display:flex; flex-wrap: wrap; 复制 效果预览 浏览器支持 表格中的数字表示支持该属性的第一个浏览器的版本号. 紧跟在 -webki ...
- css学习笔记1
:before,:after伪元素 伪元素特性(目前已经遇到的) 它不存在于文档中,所以js无法操作它 它属于主元素本身,有些伪类仅仅是代表元素内容的一部分,譬如:first-letter代表第一个字 ...
- D3.js:力导向图
var nodes = [ { name: "桂林" }, { name: "广州" }, { name: "厦门" }, { name: ...
- 前端——HTML笔记Two
web前端需要掌握:HTML.CSS.JavaScript语言.这三门技术用来实现: 1. HTML是网页内容的载体.内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字.图片.视频等. 2 ...
- Redis安装(CentOS7/tar.gz)
1. 将安装包redis-3.2.0.tar.gz上传到linux系统,位置随意. 2. 解压文件 .tar.gz 3. 解压后会在当前目录生成文件夹“redis-3.2.0”,将其拷贝到" ...
- 使用ObjectInputStream和ObjectOutputStream注意问题
1.对象序列化,类实现Serializable接口 不需要序列化的属性,使用transient声明 2.使用套接字流在主机之间传递对象注意问题: 学习自:Socket同时使用ObjectInputSt ...
- svn clean up 出错解决方案
问题描述:svn执行clean up命令时报错"Previous operation has not finished; run 'cleanup' if it was interrupte ...
- HDU 1045 Fire Net(DFS)
Fire Net Problem Description Suppose that we have a square city with straight streets. A map of a ci ...
- ASP.NET Core: Getting Started with ASP.NET MVC Core
1. ASP.NET Core the Unified Framework ASP.NET Core的统一框架 2. New Solution Project 新的解决方案项目 src folder: ...
- Hololens文件读写
unity 内勾选 RemovableStorage 选项或 Package.appxmanifest 勾选 可移动存储 选项 uwp app IO操作用 StreamReader 会提示没有权限,如 ...