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 dialog里的服务器控件 事件失效问题
Dec 08 Javascript
Extjs EditorGridPanel中ComboBox列的显示问题
Jul 04 Javascript
node.js中的buffer.write方法使用说明
Dec 10 Javascript
node.js中的fs.futimes方法使用说明
Dec 17 Javascript
js调出上下文菜单的实例
Dec 17 Javascript
通过AngularJS实现图片上传及缩略图展示示例
Jan 03 Javascript
setTimeout学习小结
Feb 08 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
Jan 23 Javascript
微信小程序 Storage更新详解
Jul 16 Javascript
vue.js实现简单的计算器功能
Feb 22 Javascript
js实现动态时钟
Mar 12 Javascript
详解JavaScript原型与原型链
Nov 16 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.ini中的php-5.2.0配置指令详解
2008/03/27 PHP
php开发文档 会员收费1期
2012/08/14 PHP
js AspxButton的客户端操作
2009/06/26 Javascript
IE6下js通过css隐藏select的一个bug
2010/08/16 Javascript
jquery DIV撑大让滚动条滚到最底部代码
2013/06/06 Javascript
js中方法重载如何实现?以及函数的参数问题
2013/08/01 Javascript
Jquery实现自定义窗口随意的拖拽
2014/03/12 Javascript
javascript中的__defineGetter__和__defineSetter__介绍
2014/08/15 Javascript
JavaScript实现查找字符串中第一个不重复的字符
2014/12/29 Javascript
javascript实现将文件保存到本地方法汇总
2015/07/26 Javascript
JS实现的车标图片提示效果代码
2015/10/10 Javascript
js格式化时间的简单实例
2016/11/27 Javascript
利用select实现年月日三级联动的日期选择效果【推荐】
2016/12/13 Javascript
微信小程序实现星级评分和展示
2018/07/05 Javascript
JavaScript引用类型Function实例详解
2018/08/09 Javascript
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
mpvue+vant app搭建微信小程序的方法步骤
2019/02/11 Javascript
layui select 禁止点击的实现方法
2019/09/05 Javascript
vue实现图片懒加载的方法分析
2020/02/05 Javascript
解决vuex数据页面刷新后初始化操作
2020/07/26 Javascript
JS实现简易贪吃蛇游戏
2020/08/24 Javascript
[03:12]完美世界DOTA2联赛PWL DAY9集锦
2020/11/10 DOTA
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
2017/04/11 Python
Python如何获取Win7,Win10系统缩放大小
2020/01/10 Python
解决Keras自带数据集与预训练model下载太慢问题
2020/06/12 Python
详解python datetime模块
2020/08/17 Python
纯css3无js实现的Android Logo(有简单动画)
2013/01/21 HTML / CSS
曼联官方网上商店:Manchester United Direct
2017/07/28 全球购物
Rowdy Gentleman服装和配饰:美好时光
2019/09/24 全球购物
巴西箱包、背包、钱包和旅行配件购物网站:Inovathi
2019/12/14 全球购物
《明天,我们毕业》教学反思
2014/04/24 职场文书
井冈山红色之旅心得体会
2014/10/07 职场文书
银行贷款委托书范本
2014/10/11 职场文书
太空授课观后感
2015/06/17 职场文书
安全学习心得体会范文
2016/01/18 职场文书
pytorch实现线性回归以及多元回归
2021/04/11 Python