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实现锚点(Anchor)间平滑跳转
Sep 08 Javascript
javascript中日期转换成时间戳的小例子
Mar 21 Javascript
js对象继承之原型链继承实例
Jan 10 Javascript
js实现的简洁网页滑动tab菜单效果代码
Aug 24 Javascript
JavaScript知识点总结之如何提高性能
Jan 15 Javascript
JS Ajax请求如何防止重复提交
Jun 13 Javascript
javascript 常用验证函数总结
Jun 28 Javascript
解决vue router使用 history 模式刷新后404问题
Jul 19 Javascript
iview table render集成switch开关的实例
Mar 14 Javascript
vue-router重定向不刷新问题的解决
Jun 25 Javascript
JavaScript中的事件与异常捕获详析
Feb 24 Javascript
vue里使用create, mounted调用方法
Apr 26 Vue.js
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
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
2013/08/01 PHP
深入解析PHP中逗号与点号的区别
2013/08/05 PHP
Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法
2016/10/08 PHP
thinkPHP框架自动填充原理与用法分析
2018/04/03 PHP
给moz-firefox下添加IE方法和属性
2007/04/10 Javascript
js实现运行代码需要刷新的解决方法
2007/08/18 Javascript
小型js框架veryide.librar源代码
2009/03/05 Javascript
javascript如何判断输入的url是否正确
2014/04/11 Javascript
jquery实现平滑的二级下拉菜单效果
2015/08/26 Javascript
javascript事件处理模型实例说明
2016/05/31 Javascript
常用的js方法合集
2017/03/10 Javascript
关于webpack代码拆分的解析
2017/07/20 Javascript
JavaScript高阶教程之“==”隐藏下的类型转换
2019/04/11 Javascript
vue中watch和computed为什么能监听到数据的改变以及不同之处
2019/12/27 Javascript
Vue中this.$nextTick的作用及用法
2020/02/04 Javascript
vue 中使用print.js导出pdf操作
2020/11/13 Javascript
[02:42]完美大师赛主赛事淘汰赛第三日观众采访
2017/11/25 DOTA
[02:10]2018DOTA2亚洲邀请赛赛前采访-Liquid
2018/04/03 DOTA
Python中bisect的用法
2014/09/23 Python
深入理解Python单元测试unittest的使用示例
2017/11/18 Python
python如何实现int函数的方法示例
2018/02/19 Python
用tensorflow搭建CNN的方法
2018/03/05 Python
Python正则匹配判断手机号是否合法的方法
2020/12/09 Python
Python文件读写常见用法总结
2019/02/22 Python
PYTHON EVAL的用法及注意事项解析
2019/09/06 Python
Python整数与Numpy数据溢出问题解决
2019/09/11 Python
解决python 上传图片限制格式问题
2019/10/30 Python
python中的逆序遍历实例
2019/12/25 Python
如何在python中实现线性回归
2020/08/10 Python
CSS3混合模式mix-blend-mode/background-blend-mode简介
2018/03/15 HTML / CSS
墨尔本最受欢迎的复古风格品牌:Princess Highway
2018/12/21 全球购物
小组名称和口号
2014/06/09 职场文书
2014年团总支工作总结
2014/11/21 职场文书
社区志愿者服务心得体会
2016/01/22 职场文书
纯CSS3实现div按照顺序出入效果
2021/07/15 HTML / CSS
HTML5之高度塌陷问题的解决
2022/06/01 HTML / CSS