npm ci命令的基本使用方法


Posted in Javascript onSeptember 20, 2020

偶尔发现npm ci命令,使用下感觉比npm i快了许多,于是也来了解下该命令。

一、用途

npm ci和npm install命令一样,是用来安装依赖的命令,但他可以比常规的 npm 安装快得多,也比常规安装更严格,他可以npm依赖安装的一致和稳定 (锁版本)。

在package.json中,每次install后,对应的版本前都有个 ^ 符号。在这种情况下,你再次install时安装的包的版本可能与前次不一样,具体的,你可以到package-lock.json中查看实际的包版本。

^的匹配规则是:>= 当前版本,且保持从左至右的第一个非零版本。举例说明:

"^1.2.3": 大于等于 1.2.3 且小于 2.0.0版本
"^0.3.4": 大于等于 0.3.4 且小于 0.4.0版本
"^0.0.6": 大于等于 0.0.6 且小于 0.0.7版本

若我们一直使用install命令时,便会遇到开发和测试、发布时包版本不同的问题,这种细微的差别往往会导致严重的结局。

二、用法

在npm i(install)的地方改用npm ci,当然项目中必须有一个package-lock.json或npm-shrinkwrap.json。

注:npm版本要>=5.7。

三、区别

npm ci与npm i主要有以下的区别。

  • npm i依赖package.json,而npm ci依赖package-lock.json。
  • 当package-lock.json中的依赖于package.json不一致时,npm ci退出但不会修改package-lock.json。
  • npm ci只可以一次性的安装整个项目依赖,但无法添加单个依赖项。
  • npm ci安装包之前,会删除掉node_modules文件夹,因此他不需要去校验已下载文件版本与控制版本的关系,也不用校验是否存在最新版本的库,所以下载的速度更快。
  • npm安装时,不会修改package.json与package-lock.json。

该命令在去年2月份就出了,居然现在才了解到,实在是忏愧。

总结

到此这篇关于npm ci命令的基本使用方法的文章就介绍到这了,更多相关npm ci命令内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
jquery实现弹出窗口效果的实例代码
Nov 28 Javascript
js图片实时加载提供网页打开速度
Sep 11 Javascript
TypeScript 中接口详解
Jun 19 Javascript
jQuery实例—选项卡的简单实现(js源码和jQuery)
Jun 14 Javascript
jQuery实现页面点击后退弹出提示框的方法
Aug 24 Javascript
简单实现JS计算器功能
Dec 21 Javascript
Vue自定义指令使用方法详解
Aug 21 Javascript
bootstrap treeview 树形菜单带复选框及级联选择功能
Jun 08 Javascript
D3.js实现拓扑图的示例代码
Jun 30 Javascript
require.js 加载过程与使用方法介绍
Oct 30 Javascript
vue的for循环使用方法
Feb 12 Javascript
Vue-cli3多页面配置详解
Mar 22 Javascript
js面试题之异步问题的深入理解
Sep 20 #Javascript
js实现简单的点名器随机色实例代码
Sep 20 #Javascript
前端vue+elementUI如何实现记住密码功能
Sep 20 #Javascript
Vue+element+cookie记住密码功能的简单实现方法
Sep 20 #Javascript
解决vue项目运行提示Warnings while compiling.警告的问题
Sep 18 #Javascript
vue-cli3 热更新配置操作
Sep 18 #Javascript
vue-cli 关闭热更新操作
Sep 18 #Javascript
You might like
PHP4中session登录页面的应用
2008/07/25 PHP
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
2010/03/21 PHP
PHP获取真实客户端的真实IP
2017/03/07 PHP
实例分析PHP将字符串转换成数字的方法
2019/01/27 PHP
php xhprof使用实例详解
2019/04/15 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
图片之间的切换
2006/06/26 Javascript
jQuery操作input type=radio的实现代码
2012/06/14 Javascript
通过Javascript创建一个选择文件的对话框代码
2012/06/16 Javascript
原生Js页面滚动延迟加载图片实现原理及过程
2013/06/24 Javascript
javascript中数组的sort()方法的使用介绍
2013/12/18 Javascript
js对文章内容进行分页示例代码
2014/03/05 Javascript
改变checkbox默认选中状态及取值的实现代码
2016/05/26 Javascript
微信小程序 生命周期函数详解
2017/05/24 Javascript
使用angular帮你实现拖拽的示例
2017/07/05 Javascript
vue-cli下的vuex的简单Demo图解(实现加1减1操作)
2018/02/26 Javascript
vue.js将时间戳转化为日期格式的实现代码
2018/06/05 Javascript
轻量级富文本编辑器wangEditor结合vue使用方法示例
2018/10/10 Javascript
详解Node.js amqplib 连接 Rabbit MQ最佳实践
2019/01/24 Javascript
vue.js指令v-for使用以及下标索引的获取
2019/01/31 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
Python中绑定与未绑定的类方法用法分析
2016/04/29 Python
Python文件操作之合并文本文件内容示例代码
2017/09/19 Python
python中yaml配置文件模块的使用详解
2018/04/27 Python
详解Python 正则表达式模块
2018/11/05 Python
将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例
2020/01/04 Python
分享unittest单元测试框架中几种常用的用例加载方法
2020/12/02 Python
Python jieba库分词模式实例用法
2021/01/13 Python
css3.0 图形构成实例练习二
2013/03/19 HTML / CSS
css3中检验表单的required,focus,valid和invalid样式
2014/02/21 HTML / CSS
会计专业毕业生自我评价
2013/09/25 职场文书
2014年化工厂工作总结
2014/11/25 职场文书
总经理检讨书范文
2015/02/16 职场文书
2016中考冲刺决心书
2015/09/22 职场文书
2016三八妇女节慰问信
2015/11/30 职场文书
PostgreSQL13基于流复制搭建后备服务器的方法
2022/01/18 PostgreSQL