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帮助之CSS尺寸(五)outerHeight、outerWidth
Nov 14 Javascript
Asp.net下利用Jquery Ajax实现用户注册检测(验证用户名是否存)
Sep 12 Javascript
cookie的复制与使用记住用户名实现代码
Nov 04 Javascript
express的中间件bodyParser详解
Dec 04 Javascript
javascript实现禁止复制网页内容
Dec 16 Javascript
基于javascript实现泡泡大冒险网页版小游戏
Mar 23 Javascript
全面解析多种Bootstrap图片轮播效果
May 27 Javascript
JS中使用变量保存arguments对象的方法
Jun 03 Javascript
微信小程序实战之轮播图(3)
Apr 17 Javascript
elementUI Tree 树形控件的官方使用文档
Apr 25 Javascript
Vue实现固定定位图标滑动隐藏效果
May 30 Javascript
Angular6使用forRoot() 注册单一实例服务问题
Aug 27 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
解析dedecms空间迁移步骤详解
2013/05/15 PHP
CodeIgniter框架提示Disallowed Key Characters的解决办法
2014/04/21 PHP
ThinkPHP模板判断输出Present标签用法详解
2014/06/30 PHP
ThinkPHP内置jsonRPC的缺陷分析
2014/12/18 PHP
php创建多级目录的方法
2015/03/24 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
2019/04/10 PHP
改版了网上的一个js操作userdata
2007/04/27 Javascript
javascript实现动态CSS换肤技术的脚本
2007/06/29 Javascript
js cookies 常见网页木马挂马代码 24小时只加载一次
2009/04/13 Javascript
Prototype 学习 工具函数学习($方法)
2009/07/12 Javascript
关于JavaScript中string 的replace
2013/04/12 Javascript
jquery与prototype框架的详细对比
2013/11/21 Javascript
用于deeplink的js方法(判断手机是否安装app)
2014/04/02 Javascript
get(0).tagName获得作用标签示例代码
2014/10/08 Javascript
javascript+html5实现绘制圆环的方法
2015/07/28 Javascript
分享JavaScript与Java中MD5使用两个例子
2015/12/23 Javascript
javascript 动态样式添加的简单实现
2016/10/11 Javascript
浅谈EasyUI常用控件的禁用方法
2016/11/09 Javascript
JS实现一个简单的日历
2017/02/22 Javascript
Bootstrap栅格系统的使用详解
2017/10/30 Javascript
webpack4.x打包过程详解
2018/07/18 Javascript
解决vuex刷新状态初始化的方法实现
2019/08/15 Javascript
javscript 数组扁平化的实现
2020/02/03 Javascript
对Python中TKinter模块中的Label组件实例详解
2019/06/14 Python
Python 爬取淘宝商品信息栏目的实现
2021/02/06 Python
巴黎卡诗美国官方网站:始于1964年的头发头皮护理专家
2017/07/10 全球购物
医药代表个人求职信范本
2013/12/19 职场文书
大学生冰淇淋店商业计划书
2014/01/14 职场文书
销售职业生涯规划范文
2014/03/14 职场文书
团队精神口号
2014/06/06 职场文书
中秋节国旗下演讲稿
2014/09/05 职场文书
学校开学标语
2014/10/06 职场文书
借名购房协议书范本
2014/10/06 职场文书
同学毕业留言寄语
2015/02/27 职场文书
员工表扬信怎么写
2015/05/05 职场文书
2016年青少年禁毒宣传教育活动总结(学校)
2016/04/05 职场文书