Skip to content
Inspire - Capo Productions

package-lock

dependencies 是一个对象,对象和 node_modules 中的包结构一一对应,对象的 key 为包名称,值为包的一些描述信息:

  • version:包版本 ------ 这个包当前安装在 node_modules 中的版本
  • resolved:包具体的安装来源
  • integrity:包 hash 值,基于 Subresource Integrity 来验证已安装的软件包是否被改动过、是否已失效
  • requires:对应子依赖的依赖,与子依赖的 package.jsondependencies的依赖项相同。
  • dependencies:结构和外层的 dependencies 结构相同,存储安装在子依赖 node_modules 中的依赖包。

这里注意,并不是所有的子依赖都有 dependencies 属性,只有子依赖的依赖和当前已安装在根目录的 node_modules 中的依赖冲突之后,才会有这个属性

新建项目 npm A,执行 npm i npm-test-zbx

package.json 中会新增依赖记录

json
"dependencies": {
  "npm-test-zbx": "^1.0.0"
}

同时生成 package-lock.json

json
{
  "name": "test",
  "version": "1.0.0",
  "lockfileVersion": 1,
  "requires": true,
  "dependencies": {
    "npm-test-zbx": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/npm-test-zbx/-/npm-test-zbx-1.0.0.tgz",
      "integrity": "sha512-SK+N7PK+3ah74suLvVaGIR2pDvxFySafer/At4xChbx5i9d3M+v9absig3qiwbQLku7EakcCDwvgaPVwaF3T/A=="
    }
  }
}

并且 node_modules 中安装了版本号为 1.0.0 的 npm-test-zbx。

一段时间后库 npm-test-zbx 更新了,版本变成了 1.0.1,在项目 A 中执行 npm i,node_modules 下并不会安装 1.0.1 版本的 npm-test-zbx。因为 package-lock.json 中记录的 npm-test-zbx 版本是 1.0.0,npm 会按照 package-lock.json 去安装依赖。

package-lock.json 具有“锁版”的作用,package-lock.json 中描述的依赖树跟 node_modules 实际结构一一对应。当 package-lock.json、package.json 同时存在,且两者不冲突时,执行命令 npm i 会依据 package-lock.json 来生成 node_modules 文件夹。

冲突的场景: package.json 中记录了库 A,而 package-lock.json 中没有记录库 A

如果依据 package-lock.json 去生成 node_modules,则 node_modules 中没有库 A,这与 package.json 描述的矛盾

package-lock.json、package.json 都记录了库 A,package.json 中的版本是 ^2.2.1,package-lock.json 中记录的版本是 1.4.3

如果依据 package-lock.json 去生成 node_modules,则 node_modules 中库 A 版本是 1.4.3,这与 package.json 描述的矛盾

package.json 中没有记录库 A,而 package-lock.json 中有记录库 A

不能手动修改 package-lock.json 中dependenciesdevDependencies 等字段,执行 npm update [库]npm update 库npm uninstall 库 等命令会自动修改package-lock.json 文件

布局切换

调整 VitePress 的布局样式,以适配不同的阅读习惯和屏幕环境。

全部展开
使侧边栏和内容区域占据整个屏幕的全部宽度。
全部展开,但侧边栏宽度可调
侧边栏宽度可调,但内容区域宽度不变,调整后的侧边栏将可以占据整个屏幕的最大宽度。
全部展开,且侧边栏和内容区域宽度均可调
侧边栏宽度可调,但内容区域宽度不变,调整后的侧边栏将可以占据整个屏幕的最大宽度。
原始宽度
原始的 VitePress 默认布局宽度

页面最大宽度

调整 VitePress 布局中页面的宽度,以适配不同的阅读习惯和屏幕环境。

调整页面最大宽度
一个可调整的滑块,用于选择和自定义页面最大宽度。

内容最大宽度

调整 VitePress 布局中内容区域的宽度,以适配不同的阅读习惯和屏幕环境。

调整内容最大宽度
一个可调整的滑块,用于选择和自定义内容最大宽度。

聚光灯

支持在正文中高亮当前鼠标悬停的行和元素,以优化阅读和专注困难的用户的阅读体验。

ON开启
开启聚光灯。
OFF关闭
关闭聚光灯。