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 dom代码应用 简单的相册[firefox only]
Jun 12 Javascript
判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解
Nov 07 Javascript
javascript中setTimeout的问题解决方法
May 08 Javascript
js读取csv文件并使用json显示出来
Jan 09 Javascript
jquery实现定时自动轮播特效
Dec 10 Javascript
angularjs 源码解析之injector
Aug 22 Javascript
jQuery css() 方法动态修改CSS属性
Sep 25 Javascript
node文件上传功能简易实现代码
Jun 16 Javascript
vue2.0 如何在hash模式下实现微信分享
Jan 22 Javascript
javascript设计模式 ? 模板方法模式原理与用法实例分析
Apr 23 Javascript
jQuery实现高度灵活的表单验证功能示例【无UI】
Apr 30 jQuery
Node 使用express-http-proxy 做api网关的实现
Oct 15 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执行速度全攻略(上)
2006/10/09 PHP
php的ajax框架xajax入门与试用介绍
2010/12/19 PHP
php网页病毒清除类
2014/12/08 PHP
php判断linux下程序问题实例
2015/07/09 PHP
IE与firefox下Dhtml的一些区别小结
2009/12/02 Javascript
基于jquery的让textarea自适应高度的插件
2010/08/03 Javascript
javascript一个无懈可击的实例化XMLHttpRequest的方法
2010/10/13 Javascript
windows系统下简单nodejs安装及环境配置
2013/01/08 NodeJs
被遗忘的javascript的slice() 方法
2015/04/20 Javascript
浅谈Javascript数据属性与访问器属性
2016/07/26 Javascript
jQuery ready()和onload的加载耗时分析
2016/09/08 Javascript
超详细的JS弹出窗口代码大全
2020/04/18 Javascript
javascript基本数据类型和转换
2017/03/17 Javascript
JS实现两周内自动登录功能
2017/03/23 Javascript
Node.js readline 逐行读取、写入文件内容的示例
2018/03/01 Javascript
在vue组件中使用axios的方法
2018/03/16 Javascript
vue框架搭建之axios使用教程
2018/07/11 Javascript
vue百度地图 + 定位的详解
2019/05/13 Javascript
解决vue项目打包上服务器显示404错误,本地没出错的问题
2020/11/03 Javascript
[55:56]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
跟老齐学Python之关于类的初步认识
2014/10/11 Python
Python图像灰度变换及图像数组操作
2016/01/27 Python
Python多线程实现同步的四种方式
2017/05/02 Python
使用apidoc管理RESTful风格Flask项目接口文档方法
2018/02/07 Python
Jupyter安装nbextensions,启动提示没有nbextensions库
2020/04/23 Python
numpy向空的二维数组中添加元素的方法
2018/11/01 Python
python实现坦克大战游戏 附详细注释
2020/03/27 Python
python2 对excel表格操作完整示例
2020/02/23 Python
Python使用pdb调试代码的技巧
2020/05/03 Python
Django的ListView超详细用法(含分页paginate)
2020/05/21 Python
Python文件夹批处理操作代码实例
2020/07/21 Python
Python Process创建进程的2种方法详解
2021/01/25 Python
英国豪华文具和皮具配件经典老品牌:Smythson(斯迈森)
2018/04/19 全球购物
英国计算机商店:Technextday
2019/12/28 全球购物
体育课外活动总结
2014/07/08 职场文书
2015年全国爱耳日活动总结
2015/02/27 职场文书