npm 知识点

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博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值