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 相关文章推荐
如何在Web页面上直接打开、编辑、创建Office文档
Mar 12 Javascript
JavaScript实现弹出子窗口并传值给父窗口
Dec 18 Javascript
JavaScript实现DIV层拖动及动态增加新层的方法
May 12 Javascript
JS+CSS实现的蓝色table选项卡效果
Oct 08 Javascript
聊一聊JS中this的指向问题
Jun 17 Javascript
JQuery实现DIV其他动画效果的简单实例
Sep 18 Javascript
JavaScript作用域、闭包、对象与原型链概念及用法实例总结
Aug 20 Javascript
在vue 中使用 less的教程详解
Sep 26 Javascript
使用element-ui table expand展开行实现手风琴效果
Mar 15 Javascript
解决vue中axios设置超时(超过5分钟)没反应的问题
Sep 04 Javascript
解决vue watch数据的方法被调用了两次的问题
Nov 07 Javascript
vue 防止页面加载时看到花括号的解决操作
Nov 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
PHP文件读写操作之文件写入代码
2011/01/13 PHP
php实现快速排序的三种方法分享
2014/03/12 PHP
PHP中数据库单例模式的实现代码分享
2014/08/21 PHP
PHP中shuffle数组值随便排序函数用法
2014/11/21 PHP
php绘图之在图片上写中文和英文的方法
2015/01/24 PHP
Laravel 5框架学习之模型、控制器、视图基础流程
2015/04/08 PHP
PHP中的traits实现代码复用使用实例
2015/05/13 PHP
PHP中的use关键字及文件的加载详解
2016/11/28 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
基于jquery编写的横向自适应幻灯片切换特效的实例代码
2013/08/06 Javascript
利用js制作html table分页示例(js实现分页)
2014/04/25 Javascript
AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法
2014/06/06 Javascript
jQuery搜索子元素的方法
2015/02/10 Javascript
浅谈JavaScript数据类型
2015/03/03 Javascript
JQuery中ajax方法访问web服务实例
2015/07/18 Javascript
jquery实现页面虚拟键盘特效
2015/08/08 Javascript
JavaScript电子时钟倒计时第二款
2016/01/10 Javascript
AngularJS监听路由的变化示例代码
2016/09/23 Javascript
使用ionic播放轮询广告的实现方法(必看)
2017/04/24 Javascript
浅谈Vuex的状态管理(全家桶)
2017/11/04 Javascript
Node解决简单重复问题系列之Excel内容的获取
2018/01/02 Javascript
mpvue实现左侧导航与右侧内容的联动
2019/10/21 Javascript
Vue实现点击当前行变色
2020/12/14 Vue.js
Python实现的tab文件操作类分享
2014/11/20 Python
Python设计模式之抽象工厂模式
2016/08/25 Python
django rest framework之请求与响应(详解)
2017/11/06 Python
Python基于列表模拟堆栈和队列功能示例
2018/01/05 Python
对Python3+gdal 读取tiff格式数据的实例讲解
2018/12/04 Python
用Python PIL实现几个简单的图片特效
2019/01/18 Python
Django RBAC权限管理设计过程详解
2019/08/06 Python
python 并发编程 多路复用IO模型详解
2019/08/20 Python
超实用的 30 段 Python 案例
2019/10/10 Python
通过代码实例了解Python3编程技巧
2020/10/13 Python
检测浏览器对HTML5和CSS3支持度的方法
2015/06/25 HTML / CSS
区优秀教师事迹材料
2014/02/10 职场文书
漫画「请问您今天要来点兔子吗?」最新杂志彩页公开
2022/03/24 日漫