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 相关文章推荐
js cookies 常见网页木马挂马代码 24小时只加载一次
Apr 13 Javascript
防止xss和sql注入:JS特殊字符过滤正则
Apr 18 Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
Sep 10 Javascript
js对图片base64编码字符串进行解码并输出图像示例
Mar 17 Javascript
如何使用jquery easyui创建标签组件
Nov 18 Javascript
同步文本框内容JS代码实现
Aug 04 Javascript
微信小程序使用第三方库Immutable.js实例详解
Sep 27 Javascript
EasyUI的TreeGrid的过滤功能的解决思路
Aug 08 Javascript
微信小程序引入模块中wxml、wxss、js的方法示例
Aug 09 Javascript
JavaScript缺少insertAfter解决方案
Jul 03 Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
Oct 20 Javascript
Vue 简单实现前端权限控制的示例
Dec 25 Vue.js
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
多文件上传的例子
2006/10/09 PHP
PHP设计聊天室步步通
2006/10/09 PHP
php4的session功能评述(三)
2006/10/09 PHP
php 接口类与抽象类的实际作用
2009/11/26 PHP
Codeigniter+PHPExcel实现导出数据到Excel文件
2014/06/12 PHP
浅谈ThinkPHP的URL重写
2014/11/25 PHP
PHP版QQ互联OAuth示例代码分享
2015/07/05 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
javascript实现的平方米、亩、公顷单位换算小程序
2014/08/11 Javascript
jQuery实现带滚动线条导航效果的方法
2015/01/30 Javascript
jquery读取xml文件实现省市县三级联动的方法
2015/05/29 Javascript
jQuery 常用代码集锦(必看篇)
2016/05/16 Javascript
Javascript实现倒计时时差效果
2017/05/18 Javascript
小程序分页实践之编写可复用分页组件
2019/07/18 Javascript
vue eslint简要配置教程详解
2019/07/26 Javascript
vue视频播放插件vue-video-player的具体使用方法
2019/11/08 Javascript
mpvue微信小程序开发之实现一个弹幕评论
2019/11/24 Javascript
使用vant的地域控件追加全部选项
2020/11/03 Javascript
python统计字符串中指定字符出现次数的方法
2015/04/04 Python
python将字典内容存入mysql实例代码
2018/01/18 Python
python多进程提取处理大量文本的关键词方法
2018/06/05 Python
python中的单引号双引号区别知识点总结
2019/06/23 Python
用django-allauth实现第三方登录的示例代码
2019/06/24 Python
Python基于百度AI实现OCR文字识别
2020/04/02 Python
python如何写出表白程序
2020/06/01 Python
python 制作简单的音乐播放器
2020/11/25 Python
瑞典Happy Socks美国官网:购买色彩斑斓的快乐袜子
2016/10/19 全球购物
美容师的职业规划书
2013/12/27 职场文书
分公司总经理岗位职责
2014/07/30 职场文书
中华魂放飞梦想演讲稿
2014/08/26 职场文书
业务内勤岗位职责
2015/04/13 职场文书
2016寒假假期总结
2015/10/10 职场文书
公司趣味运动会开幕词
2016/03/04 职场文书
golang 实现两个结构体复制字段
2021/04/28 Golang
dubbo服务整合zipkin详解
2021/07/26 Java/Android
Python+pyaudio实现音频控制示例详解
2022/07/23 Python