npm 知识点

news2024/11/24 12:38:25

1

~会匹配最近的小版本依赖包,比如~1.1.3会匹配所有1.1.x版本,但是不包括1.2.0
^会匹配最新的大版本依赖包,比如^1.3.4会匹配所有1.x.x的包,包括1.3.4,但是不包括2.0.0
*会匹配最新版本

2  @ant-design/pro-table 前面@理解

以这种格式命名的包,遵从这个规范:

@myorg/mypackage

@组织名/包名

这种包被称为 Scoped Package。

Scope

Scope 的定义非常宽泛,一个普通开发者,或者组织都可以定义一个 Scope。

这样带来的好处就是,不用担心自己命名的包名与其他人、组织的包名冲突。

3  你不知道的npm install

在执行 npm install 或 npm update命令下载依赖后,除了将依赖包安装在node_modules 目录下外,还会在本地的缓存目录缓存一份。
通过 npm config get cache 命令可以查询到:在 Linux 或 Mac 默认是用户主目录下的 .npm/_cacache 目录。
在这个目录下又存在两个目录:content-v2、index-v5,

content-v2 :目录用于存储 tar包的缓存(content-v2里面存放的是一些二进制的文件。为了使二进制的文件可读,我把文件做了压缩和解压缩处理。太多了我们不能每个都处理一下,所以还是使用grep命令查找)

index-v5:目录用于存储tar包的 hash。
npm 在执行安装时,可以根据 package-lock.json 中存储的 integrity、version、name 生成一个唯一的 key 对应到 index-v5 目录下的缓存记录,从而找到 tar包的 hash,然后根据 hash 再去找缓存的 tar包直接使用。

切换到.npm/_cacache目录下执行

grep "rc-pagination" -r -n index-5

我是直接用的包名搜索,因为使用resolved下载路径搜索搜不到,因为下载路径会被修改

package-lock.json 源配置


"rc-pagination": {
    "version": "3.1.14",
    "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-3.1.14.tgz",
    "integrity": "sha512-tcugvxrtPiVU00Uh0IwC8NIUlxa4KtA9pXcaMNJdSHeO2uQqVkHEwllsULTAWRF3zRV2ozo2weP/DRKIUrX+Zg==",
    "requires": {
        "@babel/runtime": "^7.10.1",
        "classnames": "^2.2.1"
    }
}

 上面是缓存包的配置

{
    "key":"make-fetch-happen:request-cache:https://cdn.npmmirror.com/packages/rc-pagination/3.1.14/rc-pagination-3.1.14.tgz",
    "integrity":"sha512-tcugvxrtPiVU00Uh0IwC8NIUlxa4KtA9pXcaMNJdSHeO2uQqVkHEwllsULTAWRF3zRV2ozo2weP/DRKIUrX+Zg==",
    "time":1683793298918,
    "size":23177,
    "metadata":{
        "time":1683793293751,
        "url":"https://cdn.npmmirror.com/packages/rc-pagination/3.1.14/rc-pagination-3.1.14.tgz",
        "reqHeaders":{

        },
        "resHeaders":{
            "cache-control":"max-age=86400",
            "content-type":"application/octet-stream",
            "date":"Thu, 11 May 2023 02:44:02 GMT",
            "etag":"\"E09681DE7223AC3EB0D5F8B013CB58E8\"",
            "last-modified":"Wed, 26 Jan 2022 13:34:53 GMT"
        },
        "options":{
            "compress":true
        }
    }
}

可以看到url路径和我们原本的路径不一致。

index-v5/0e/08/86e605b328630be3aaba0b0fce93f48eec6cb5a3988dec1af09e6989cb82:6d8e9da5e61aee1fe5ef6993187e1836c1a47a2a

文件对应的路径,可以自己找到压缩解压查看。

//TODO。。。持续更新

参考

npm的安装及缓存机制详解_npm 缓存_龙韵音的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/514287.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

EndNote X9 引用参考 单击文献编号,不能跳转到文尾文献列表处,咋解决?文献编号 不能跳转 ,怎么办?

文章目录 1 正常情况下 引用文献编号 是可以跳转的2 问题分析3 解决方法4 EndNote X9 插入参考文献常见问题总结5 EndNote X9 快速上手教程(毕业论文参考文献管理器) 1 正常情况下 引用文献编号 是可以跳转的 正确的插入文献后, 正常情况下&a…

公告 | FISCO BCOS v3.3.0发布,新增块内分片技术,单链性能突破10万TPS

FISCO BCOS开源社区一贯秉承开源、开放、联合共建的原则,致力于链接社区力量将FISCO BCOS打造成更加完美的区块链底层平台。 在社区通力协作下,FISCO BCOS v3.3.0已经发布,块内分片作为本次更新的核心亮点,实现了应用间交易执行的…

PyMuPDF pdf神奇处理工具

可将pdf转图片,图片转pdf,可拼接pdf,可提取固定的内容。 详细参考下面文章: PyMuPDF关键字标注:https://www.cnpython.com/qa/1436855 PyMuPDF去水印:https://sunnysab.cn/2022/06/29/Clean-Watermarks-…

BlockingQueue(阻塞队列)基本使用指南

概述 BlockingQueue 是 java.util.concurrent 包提供的用于解决并发生产者 - 消费者问题的最有用的类。 BlockingQueue 的特性是在任意时刻只有一个线程可以进行 take 或者 put 操作,并且 BlockingQueue 提供了超时 return null 的机制,在许多生产场景…

哪些行业适合开发微信小程序?

随着电子商务的进一步发展,很多行业都开始开发自己的系统软件,企图通过线上线下结合的方式来达到更好的宣传效果,拓客引流。微信小程序凭借成本低、使用方便等优点成为很多商家的首选。那么究竟哪些行业适合开发微信小程序呢? …

springboot项目,localhost:port 可以访问,但是外网IP:port不行

springboot 项目启动后,localhost:port 可以访问,但是外网IP:port不行 现象原因及解决方法解决方法:规则1:规则2:规则3: 现象 springboot项目,localhost:port 可以访问,但是外网IP:…

Java多线程基础-9:代码案例之阻塞队列

阻塞队列是一种特殊的队列,带有“阻塞特性”,也遵守队列 “先进先出” 的原则。阻塞队列是一种线程安全的数据结构,并且具有以下特性: 当队列满时,继续入队列就会阻塞,直到有其他线程从队列中取走元素。当…

协程Flow原理

什么是Flow Flow直译过来就是“流”的意思,也就是将我们我们任务如同水流一样一步一步分割做处理。想象一下,现在有一个任务需要从山里取水来用你需要怎么做? 扛上扁担走几十里山路把水挑回来。简单粗暴,但是有可能当你走了几十…

Java项目经验二:二手车系统

1、项目简介 开发环境:IDEA MySQL JDK1.8 Git Maven 使用技术:Spring Cloud Mybatis Plus MySQL RocketMQ Nginx Nacos Redis MongoDB ElasticSearch Shiro 项目描述: XX二手车的服务贯穿二手车交易各个环节,运用成熟…

穿越数据智能“海峡”,企业更需要什么样的数智底座?

导读:更懂业务,是用友iuap数智中台多年打磨的核心能力。 如果将数智化转型比作企业的大航海旅程,数据和智能就像是大航海过程中企业必须穿越的海峡。随着数智化转型的不断深入,很多企业驶进数据智能海峡后发现,要用好数…

外观数列、文本左右对齐----2023/5/11

外观数列----2023/5/11 给定一个正整数 n ,输出外观数列的第 n 项。 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。 你可以将其视作是由递归公式定义的数字字符串序列: countAndSay(1) “1”…

分享两款好用的软件

软件一:去水印神器——Inpaint Inpaint是一款功能强大的图像处理软件,它的主要功能是去除图片中的水印。除此之外,它还可以帮助用户修复照片中的缺陷,例如划痕、斑点、红眼等,删除照片中的不必要的元素,例…

Meta最新模型LLaMA详解(含部署+论文)

来源:投稿 作者:毛华庆 编辑:学姐 前言 本课程来自深度之眼《大模型——前沿论文带读训练营》公开课,部分截图来自课程视频。 文章标题:LLaMA: Open and Efficient Foundation Language Models 向量空间中词表示的有效…

ios打包ipa的四种实用方法(.app转.ipa)

总结一下,目前.app包转为.ipa包的方法有以下几种: 1、Apple推荐的方式,即实用xcode的archive功能 Xcode菜单栏->Product->Archive->三选一,一般选后两个。 局限性:个人开发一般采用这种方法,但…

linux内核网络子系统初探2---socket层

linux内核网络子系统初探2—socket层 一、内核网络socket层相关 接着上文,从这章开始,将按照五层网络模型的顺序逐层分析内核代码。 linux1.0网络协议栈部分代码如下: [rootlocalhost linux-1.0]# ls net/ ddi.c inet Makefile socket.…

uniapp安装uview-ui踏坑

1. 安装uview-ui npm install uview-ui -S 2. 创建vue.config.js 填写如下代码 module.exports {transpileDependencies: [uview-ui] }3. 配置main.js //uview import uView from "uview-ui" Vue.use(uView)4. App.vue中引入样式 <style lang"scss"…

文案智能改写-AI智能文章改写软件

随着人工智能技术的不断发展&#xff0c;越来越多的智能写作软件相继面世&#xff0c;其中&#xff0c;AI智能改写工具是一款非常有实用价值的工具。本文将从全自动批量改写、没有错别字和标准语法、支持图文模式改写、支持各种语言改写以及严格按照标准格式结构改写几个方面&a…

前端三剑客CSS篇——CSS选择器

初识CSS选择器 文章目录 初识CSS选择器CSS三大特征&#x1f44d;CSS的三种使用方法&#x1f44f;CSS常见选择器&#x1f440;标签选择器类选择器id选择器后代选择器属性选择器复合选择器 CSS代码风格&#x1f4dc; CSS是前端三剑客不可忽略的一部分&#xff0c;CSS对前端来说是…

知了汇智:坚持发展产教融合,做好高校、人才与企业之间的桥梁

6月将正式迎来高校毕业季&#xff0c;大学生就业是聚焦全社会关注的头等大事。5月9日&#xff0c;成都知了汇智科技有限公司&#xff08;以下简称“知了汇智”&#xff09;组织开展“深化产教融合、聚焦人才培养”的主题座谈会议&#xff0c;联动高校与合作企业参加&#xff0c…

天津专业python培训机构精选(犹豫不如学python)

说起python&#xff0c;有好多年轻开发者都学习过Python&#xff0c;而且到现在为止&#xff0c;还有好多人都在追着Python跑&#xff0c;即便其他语言也很优秀&#xff0c;但是对Python的爱真的是只增不减。接下来&#xff0c;小编就给大家浅说一下&#xff0c;为什么python这…