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中使用replace结合正则实现replaceAll的效果
Jun 04 Javascript
异步javascript的原理和实现技巧介绍
Nov 08 Javascript
jquery easyui使用心得
Jul 07 Javascript
json属性名为什么要双引号(个人猜测)
Jul 31 Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
Apr 21 Javascript
自定义vue全局组件use使用、vuex的使用详解
Jun 14 Javascript
AngularJS实现图片上传和预览功能的方法分析
Nov 08 Javascript
解决Vue2.x父组件与子组件之间的双向绑定问题
Mar 06 Javascript
JS动画定时器知识总结
Mar 23 Javascript
layui弹出层按钮提交iframe表单的方法
Aug 20 Javascript
使用taro开发微信小程序遇到的坑总结
Apr 08 Javascript
解决layUI的页面显示不全的问题
Sep 20 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
《破坏领主》销量已超100万 未来将继续开发新内容
2020/03/08 其他游戏
逐步提升php框架的性能
2008/01/10 PHP
火车采集器 免费版使出收费版本功能实现原理
2009/09/17 PHP
php树型类实例
2014/12/05 PHP
创建一个复制UBB软件信息的链接或按钮的js代码
2008/01/06 Javascript
javascript forEach通用循环遍历方法
2010/10/11 Javascript
Dom在ajax技术中的作用说明
2010/10/25 Javascript
JS实现侧悬浮浮动实例代码
2013/11/29 Javascript
判断javascript的数据类型(示例代码)
2013/12/11 Javascript
中止javascript执行的方法
2014/02/14 Javascript
jQuery的position()方法详解
2015/07/19 Javascript
Javascript页面跳转常见实现方式汇总
2015/11/28 Javascript
Vue实现web分页组件详解
2017/11/28 Javascript
vue多页面开发和打包正确处理方法
2018/04/20 Javascript
vue 界面刷新数据被清除 localStorage的使用详解
2018/09/16 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
2018/12/24 Javascript
基于VUE实现简单的学生信息管理系统
2021/01/13 Vue.js
Python中的字典遍历备忘
2015/01/17 Python
python中字典(Dictionary)用法实例详解
2015/05/30 Python
在Python的Flask框架中验证注册用户的Email的方法
2015/09/02 Python
使用python 写一个静态服务(实战)
2019/06/28 Python
python中的Elasticsearch操作汇总
2019/10/30 Python
Python如何使用函数做字典的值
2019/11/30 Python
Pyqt5自适应布局实例
2019/12/13 Python
python3的pip路径在哪
2020/06/23 Python
Python QT组件库qtwidgets的使用
2020/11/02 Python
Python实现Kerberos用户的增删改查操作
2020/12/14 Python
CSS3 Flex 弹性布局实例代码详解
2018/11/01 HTML / CSS
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/04/11 面试题
销售顾问的岗位职责
2013/11/13 职场文书
五好关工委申报材料
2014/05/31 职场文书
教师党员学习群众路线心得体会
2014/11/04 职场文书
商务代表岗位职责
2015/02/15 职场文书
2015年平安创建工作总结
2015/04/29 职场文书
2015年秋学期师德师风建设工作总结
2015/10/23 职场文书
使用Oracle跟踪文件的问题详解
2021/06/28 Oracle