博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
npm install --save 、--save-dev 、-D、-S 的区别
阅读量:6567 次
发布时间:2019-06-24

本文共 1742 字,大约阅读时间需要 5 分钟。

备注:<=> 意为等价于;

1、npm install <=> npm i

     --save   <=> -S     

     --save-dev  <=> -D 

      npm run start <=> npm start  // 对应"scripts"里的"start"命令

      少敲几下键盘,何乐而不为

2、npm i --save-dev  <packname>  

      工程构建(开发时、“打包”时)依赖 ;例:xxx-cli , less-loader , babel-loader...

在 package.json 文件里面体现出来的区别就是,使用 --save-dev 安装的插件,被写入到 devDependencies 对象里面去,而使用 --save 安装的插件,则被写入到 dependencies 对象里面去。

3、npm i --save <packname>

      项目(运行时、发布到生产环境时)依赖;例:antd , element,react...

那 package.json 文件里面的 devDependencies和dependencies对象有什么区别呢?

devDependencies是对开发环境所需依赖的声明(构建工具,测试工具) ,比如:babel,webpack,都放到当前目录。

而 dependencies是对生产环境所需依赖的声明(开发应用中使用的框架,库) ,比如:jq,react,vue都需要放到这里面。

4、对应关系如下(至于我们啥时候用--save、啥时候用--save-dev 感觉是个规范问题,用反了项目一样可以跑起来(对于安装依赖正确时),但会给其他看你项目的人带来误解、可能会导致一些bug的出现,还有一些配置的错乱等)

总结一下:

总体比较:

npm install module:

会把module包安装到node_modules目录中;

不会修改package.json;

之后运行npm install 命令时,不会自动安装module包。

npm install module --save

会把module包安装到node_modules目录汇总;

会修改package.json,将模块名和版本号添加到dependencies部分;

之后运行npm install 命令时,会自动安装module包;

之后运行npm install --production或者注明NODE_ENV变量值为production时,会自动安装 module到node_modules目录中,即是在线上环境运行时会将包安装。

npm install module --save-dev

会把module包安装到node_modules目录汇总;

会修改package.json,将模块名和版本号添加到devDependencies部分;

之后运行npm install 命令时,会自动安装module包;

之后运行npm install --production或者注明NODE_ENV变量值为production时,不会自动安装msbuild到node_modules目录中,即是在线上环境并不会进行安装。

--save和--save-dev可以省掉我们手动修改package.json文件的步骤。我们使用的一些打包工具、非项目必须依赖的都放在devDependencies中。

如何判断?

一种是你在使用当前模块的时候,当前模块在github上会告诉你,它需要使用哪种方式安装。

另一种就是你靠自己判断如何安装在哪个里面。

如何使用?

如果我们转移一个项目或者下载了一个别人的项目时,是不会带有node_modules目录中的模块的,所以我们拿到项目以后,是需要在根目录进行npm install进行项目安装的,这种默认是生产环境和开发环境都会安装。 

如果带上后缀npm install --production则只会安装生产环境的所有模块,而无视开发环境的相关模块。 

我们可以通过分开生产环境和开发环境相关的模块,还可以减少安装时间。达到节约时间的目的。

转载于:https://www.cnblogs.com/samve/p/10633674.html

你可能感兴趣的文章
session cookie
查看>>
$.extend({},defaults, options) --(初体验三)
查看>>
android 一步一步教你集成tinker(热修复)
查看>>
到底有多少内存
查看>>
centos7.3 安装ovirt-engine4.0 版本
查看>>
Openstack的环境的Mitaka部署环境服务,实例(1)
查看>>
文档的压缩与打包
查看>>
python3 在不同操作系统安装第三方库方法
查看>>
python编写登录接口
查看>>
MySQL高可用方案之多级复制
查看>>
OVS 中的各种网络设备 - 每天5分钟玩转 OpenStack(128)
查看>>
Trafficserver Cluster模式
查看>>
亚马逊推出 Blox,用于 EC2 容器服务的开源工具集合
查看>>
Linux:在中国没有真正的新闻
查看>>
iOS推送功能极光推送的介绍与实现
查看>>
单用户模式与grub加密
查看>>
Chromium Graphics: 3D上下文及其虚拟化 - Part I
查看>>
jquery javascript获得网页的高度和宽度
查看>>
2019 -2-15 复习
查看>>
vim锁定屏幕
查看>>