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中方便增删改cookie的一个类
Oct 11 Javascript
Javascript监视变量变化的方法
Jun 09 Javascript
jQuery实现的仿select功能代码
Aug 19 Javascript
浅析javascript中的Event事件
Dec 09 Javascript
原生js实现无限循环轮播图效果
Jan 20 Javascript
基于vue和react的spa进行按需加载的实现方法
Sep 29 Javascript
微信小程序封装自定义弹窗的实现代码
May 08 Javascript
bootstrap table列和表头对不齐的解决方法
Jul 19 Javascript
js获取 gif 的帧数的代码实例
Sep 10 Javascript
Node.js实现批量下载图片简单操作示例
Jan 18 Javascript
JS通用方法触发点击事件代码实例
Feb 17 Javascript
js实现双人五子棋小游戏
May 28 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的无限分类实现想法~
2007/01/02 PHP
PHP爆绝对路径方法收集整理
2012/09/17 PHP
ThinkPHP的L方法使用简介
2014/06/18 PHP
php定时执行任务设置详解
2015/02/06 PHP
JavaScript学习笔记(十七)js 优化
2010/02/04 Javascript
AngularJS的一些基本样式初窥
2015/07/27 Javascript
JS采用绝对定位实现回到顶部效果完整实例
2016/06/20 Javascript
JS中对Cookie的操作详解
2016/08/05 Javascript
jQuery Easyui DataGrid点击某个单元格即进入编辑状态焦点移开后保存数据
2016/08/15 Javascript
js canvas实现QQ拨打电话特效
2017/05/10 Javascript
ng-alain表单使用方式详解
2018/07/10 Javascript
JS事件绑定的常用方式实例总结
2019/03/02 Javascript
实现vuex与组件data之间的数据同步更新方式
2019/11/12 Javascript
微信小程序:报错(in promise) MiniProgramError
2020/10/30 Javascript
Bootstrap FileInput实现图片上传功能
2021/01/28 Javascript
学习python之编写简单乘法口诀表实现代码
2016/02/27 Python
Python中read()、readline()和readlines()三者间的区别和用法
2017/07/30 Python
python 实时得到cpu和内存的使用情况方法
2018/06/11 Python
Python监控服务器实用工具psutil使用解析
2019/12/19 Python
Python加密模块的hashlib,hmac模块使用解析
2020/01/02 Python
Python编程快速上手——正则表达式查找功能案例分析
2020/02/28 Python
Python3.7安装pyaudio教程解析
2020/07/24 Python
Python图像识别+KNN求解数独的实现
2020/11/13 Python
html5 乒乓球(碰撞检测)实例二
2013/07/25 HTML / CSS
html5本地存储 localStorage操作使用详解
2016/09/20 HTML / CSS
班级聚会策划书
2014/01/16 职场文书
超市采购员岗位职责
2014/02/01 职场文书
教导主任竞聘演讲稿
2014/05/16 职场文书
创优争先心得体会
2014/09/11 职场文书
新郎接新娘保证书
2015/05/08 职场文书
道歉信怎么写
2015/05/12 职场文书
我的中国梦主题班会
2015/08/14 职场文书
小学音乐课歌曲《堆雪人》教学反思
2016/02/18 职场文书
导游词之海南-南湾猴岛
2019/10/12 职场文书
使用RedisTemplat实现简单的分布式锁
2021/11/20 Redis
Python中Matplotlib的点、线形状、颜色以及绘制散点图
2022/04/07 Python