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 相关文章推荐
JavaScipt基本教程之前言
Jan 16 Javascript
一个JS小玩意 几个属性相加不能超过一个特定值.
Sep 29 Javascript
javascript 面向对象继承
Nov 26 Javascript
分享一个用Mootools写的鼠标滑过进度条改变进度值的实现代码
Dec 12 Javascript
jQuery.each()用法分享
Jul 31 Javascript
移动设备web开发首选框架:zeptojs介绍
Jan 29 Javascript
纯javascript实现分页(两种方法)
Aug 26 Javascript
node.js从数据库获取数据
May 08 Javascript
laravel5.3 vue 实现收藏夹功能实例详解
Jan 21 Javascript
详解ES6通过WeakMap解决内存泄漏问题
Mar 09 Javascript
javascript与PHP动态往类中添加方法对比
Mar 21 Javascript
微信小程序中的列表切换功能实例代码详解
Jun 09 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
预告映像公开!第1章续篇剧场版动画《Princess Principal Crown Handler》4月10日上映!
2020/03/06 日漫
咖啡与水的关系
2021/03/03 冲泡冲煮
咖啡的植物学知识
2021/03/03 咖啡文化
用PHP读取IMAP邮件
2006/10/09 PHP
PHP脚本的10个技巧(2)
2006/10/09 PHP
从php核心代码分析require和include的区别
2011/01/02 PHP
php实现源代码加密的方法
2015/07/11 PHP
(转载)JavaScript中匿名函数,函数直接量和闭包
2007/05/08 Javascript
jquery CSS选择器笔记
2010/03/29 Javascript
js的延迟执行问题分析
2014/06/23 Javascript
javascript 原型链维护和继承详解
2014/11/26 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
2015/03/30 Javascript
jQuery滚动条插件nanoscroller使用指南
2015/04/21 Javascript
JS实现鼠标滑过折叠与展开菜单效果代码
2015/09/06 Javascript
jQuery实现弹幕效果
2017/02/17 Javascript
JavaScript对象的浅拷贝与深拷贝实例分析
2018/07/25 Javascript
layui 图片上传+表单提交+ Spring MVC的实例
2019/09/21 Javascript
vue 组件内获取actions的response方式
2019/11/08 Javascript
详解vue-flickity的fullScreen功能实现
2020/04/07 Javascript
详解Vue中的MVVM原理和实现方法
2020/07/15 Javascript
[06:11]2014DOTA2国际邀请赛 专访团结一心的VG战队
2014/07/21 DOTA
对Pytorch中nn.ModuleList 和 nn.Sequential详解
2019/08/18 Python
Django生成数据库及添加用户报错解决方案
2020/10/09 Python
详解python的变量缓存机制
2021/01/24 Python
HTML5 canvas基本绘图之文字渲染
2016/06/27 HTML / CSS
NYX Professional Makeup官方网站:专业彩妆和美容产品
2019/10/29 全球购物
Hurley官方网站:扎根于海滩生活方式的全球青年文化品牌
2020/05/18 全球购物
一份比较全的PHP面试题
2016/07/29 面试题
Servlet如何得到客户端机器的信息
2014/10/17 面试题
历史系自荐信范文
2013/12/24 职场文书
安全横幅标语
2014/06/09 职场文书
经济管理自荐书
2014/06/09 职场文书
2014年个人工作总结报告
2014/11/27 职场文书
Python 高级库15 个让新手爱不释手(推荐)
2021/05/15 Python
JVM入门之类加载与字节码技术(类加载与类的加载器)
2021/06/15 Java/Android
SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例
2021/07/07 SQL Server