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 相关文章推荐
用ADODB.Stream转换
Jan 22 Javascript
Jquery拖拽并简单保存的实现代码
Nov 28 Javascript
javascript进行四舍五入方法汇总
Dec 16 Javascript
Jquery ajax加载等待执行结束再继续执行下面代码操作
Nov 24 Javascript
原生JS封装Ajax插件(同域、jsonp跨域)
May 03 Javascript
JavaScript检测原始值、引用值、属性
Jun 20 Javascript
vue动态生成dom并且自动绑定事件
Apr 19 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
Oct 11 Javascript
详解在vue-test-utils中mock全局对象
Nov 07 Javascript
JavaScript实现无限级递归树的示例代码
Mar 29 Javascript
使用p5.js临摹动态图形
Oct 23 Javascript
JavaScript Window浏览器对象模型原理解析
May 30 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
360通用php防护代码(使用操作详解)
2013/06/18 PHP
php生成扇形比例图实例
2013/11/06 PHP
页面利用渐进式JPEG来提升用户体验度
2014/12/01 PHP
php中get_meta_tags()、CURL与user-agent用法分析
2014/12/16 PHP
PHP中如何使用session实现保存用户登录信息
2015/10/20 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
2015/10/20 PHP
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
2010/04/13 Javascript
ff下JQuery无法监听input的keyup事件的解决方法
2013/12/12 Javascript
DOM节点深度克隆函数cloneNode()用法实例
2015/01/12 Javascript
jquery通过ajax加载一段文本内容的方法
2015/01/15 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
跟我学习javascript的基本类型和引用类型
2015/11/16 Javascript
快速掌握Node.js中setTimeout和setInterval的使用方法
2016/03/21 Javascript
jQuery通过写入cookie实现更换网页背景的方法
2016/04/15 Javascript
jQueryUI Datepicker组件设置日期高亮
2016/10/13 Javascript
使用Javascript判断浏览器终端设备(PC、IOS(iphone)、Android)
2017/01/04 Javascript
js实现交通灯效果
2017/01/13 Javascript
vue.js中npm安装教程图解
2018/04/10 Javascript
Python利用Nagios增加微信报警通知的功能
2016/02/18 Python
Python中shutil模块的学习笔记教程
2017/04/04 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
2017/08/30 Python
Python常用特殊方法实例总结
2019/03/22 Python
35款精致的 CSS3 和 HTML5 网页模板 推荐
2012/08/03 HTML / CSS
HTML5中的autofocus(自动聚焦)属性介绍
2014/04/23 HTML / CSS
意大利香水和彩妆护肤品购物网站:Ditano
2017/08/13 全球购物
世界上最大的在线汽车租赁预订平台:Rentalcars.com(支持中文)
2018/10/12 全球购物
金蝶的一道SQL笔试题
2012/12/18 面试题
广州喜创信息技术有限公司JAVA软件工程师笔试题
2012/10/17 面试题
节水倡议书范文
2014/04/15 职场文书
白酒代理协议书范本
2014/10/26 职场文书
农村党建工作汇报材料
2014/10/27 职场文书
临时工聘用合同协议书
2014/10/29 职场文书
六年级学生期末评语
2014/12/26 职场文书
离婚起诉书范本
2015/05/18 职场文书
80后创业总结的9条职场用人思想,记得收藏
2019/08/13 职场文书
您对思维方式了解多少?
2019/12/09 职场文书