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 相关文章推荐
javascript中的取反再取反~~没有意义
Apr 06 Javascript
你可能不知道的JavaScript的new Function()方法
Apr 17 Javascript
sails框架的学习指南
Dec 22 Javascript
利用Javascript实现BMI计算器
Aug 16 Javascript
浅析Node.js:DNS模块的使用
Nov 23 Javascript
JS实现点击表头表格自动排序(含数字、字符串、日期)
Jan 22 Javascript
微信扫码支付零云插件版实例详解
Apr 26 Javascript
JavaScript脚本语言是什么_动力节点Java学院整理
Jun 26 Javascript
Angular4学习笔记之准备和环境搭建项目
Aug 01 Javascript
echarts学习笔记之箱线图的分析与绘制详解
Nov 22 Javascript
在vue2.0中引用element-ui组件库的方法
Jun 21 Javascript
javascript实现简单打字游戏
Oct 29 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
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
2016/01/07 PHP
Yii2 批量插入、更新数据实例
2017/03/15 PHP
phpStudy vscode 搭建debug调试的教程详解
2020/07/28 PHP
百度Popup.js弹出框进化版 拖拽小框架发布 兼容IE6/7/8,Firefox,Chrome
2010/04/13 Javascript
JavaScript Math 对象常用方法总结
2016/04/28 Javascript
用JS中split方法实现彩色文字背景效果实例
2016/08/24 Javascript
详解在AngularJS的controller外部直接获取$scope
2017/06/02 Javascript
Angular2 组件交互实例详解
2017/08/24 Javascript
javaScript实现复选框全选反选事件详解
2020/11/20 Javascript
angularjs使用gulp-uglify压缩后执行报错的解决方法
2018/03/07 Javascript
JS实现给数组对象排序的方法分析
2019/06/24 Javascript
Node.js使用MongoDB的ObjectId作为查询条件的方法
2019/09/10 Javascript
JavaScript数组及常见操作方法小结
2019/11/13 Javascript
JS通用方法触发点击事件代码实例
2020/02/17 Javascript
vue 数据双向绑定的实现方法
2021/03/04 Vue.js
对于Python的Django框架使用的一些实用建议
2015/04/03 Python
python实现用户登录系统
2016/05/21 Python
Python中json格式数据的编码与解码方法详解
2016/07/01 Python
Python3实现的回文数判断及罗马数字转整数算法示例
2019/03/27 Python
Python flask框架post接口调用示例
2019/07/03 Python
Python_查看sqlite3表结构,查询语句的示例代码
2019/07/17 Python
opencv+python实现均值滤波
2020/02/19 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
2020/03/10 Python
python except异常处理之后不退出,解决异常继续执行的实现
2020/04/25 Python
浅析几个CSS3常用功能的写法
2014/06/05 HTML / CSS
Black Halo官方网站:购买连衣裙、礼服和连体裤
2018/06/13 全球购物
模特职业生涯规划范文
2014/02/26 职场文书
诚信考试倡议书
2014/04/15 职场文书
交通事故私了协议书
2014/04/16 职场文书
巾帼文明岗事迹材料
2014/12/24 职场文书
2015年清明节网上祭英烈留言寄语
2015/03/04 职场文书
个人求职意向书
2015/05/11 职场文书
解决thinkphp6(tp6)在状态码500下不报错,或者显示错误“Malformed UTF-8 characters”的问题
2021/04/01 PHP
手把手教你用SpringBoot将文件打包成zip存放或导出
2021/06/11 Java/Android
CSS实现章节添加自增序号的方法
2021/06/23 HTML / CSS
Android自定义双向滑动控件
2022/04/19 Java/Android