Frontend — 包管理

版本管理 #

  • ~: 当安装依赖时获取到有新版本时,安装到 x.y.zz 的最新的版本。即保持主版本号、次版本号不变的情况下,保持修订号的最新版本。
  • ^: 当安装依赖时获取到有新版本时,安装到 x.y.zyz 都为最新版本。 即保持主版本号不变的情况下,保持次版本号、修订版本号为最新版本。

参考文档:

在 npm 包版本管理中,版本号通常遵循 语义化版本控制(SemVer) 规范。版本号的格式为 MAJOR.MINOR.PATCH,例如 1.0.0

^ 符号 #

  • ^1.0.0 表示兼容 1.x.x 版本,意味着可以匹配 1.0.0 及其后续的任何非重大版本更新(即不改变主版本号的更新)。
  • 例如,^1.0.0 可以匹配 1.0.1, 1.1.0, 1.2.3 等等,但不包括 2.0.0

举例:

  • ^1.0.0:匹配 >=1.0.0 <2.0.0
  • ^0.1.0:匹配 >=0.1.0 <0.2.0
  • ^0.0.1:匹配 >=0.0.1 <0.0.2
  • ^0.0.0:匹配 0.0.0(仅匹配这个版本)

~ 符号 #

  • ~1.0.0 表示兼容 1.0.x 版本,意味着可以匹配 1.0.0 及其后续的任何补丁更新。
  • 例如,~1.0.0 可以匹配 1.0.1, 1.0.2 等等,但不包括 1.1.0

举例:

  • ~1.0.0:匹配 >=1.0.0 <1.1.0
  • ~0.1.0:匹配 >=0.1.0 <0.2.0
  • ~0.0.1:匹配 >=0.0.1 <0.1.0

* 符号 #

  • * 表示匹配任何版本。
  • 例如,* 可以匹配 1.0.0, 2.0.0, 3.4.5 等等。

xX 符号 #

  • 1.0.x1.0.X 表示匹配 1.0.x 版本,意味着可以匹配 1.0.0, 1.0.1, 1.0.2 等等。
  • 1.x1.X 表示匹配 1.x.x 版本,意味着可以匹配 1.0.0, 1.1.0, 1.2.3 等等。

例如:

  • >=1.0.0 <2.0.0:表示匹配从 1.0.02.0.0 之前的所有版本。
  • >=1.2.3 <=2.3.4:表示匹配从 1.2.32.3.4 之间的所有版本,包括边界值。

package.json 举例 #

{
  "dependencies": {
    "example-package": "^1.0.0",  // 兼容 1.x.x 版本
    "another-package": "~1.0.0",  // 兼容 1.0.x 版本
    "yet-another-package": "1.0.x",  // 兼容 1.0.x 版本
    "any-package": "*",  // 任何版本
    "specific-package": ">=1.2.3 <2.0.0"  // 具体版本范围
  }
}

在使用 npm install 时,默认的版本范围符号是 ^(插入符号)。这意味着当你安装一个新的包并将其添加到 package.json 文件中的依赖项时,npm 会默认使用 ^ 符号来指定版本范围。

NPM #

install #

执行 npm install xxx 后软件包会被自动地列出在 package.json 文件中的 dependencies 列表下(在 npm 5 之前:必须手动指定 --save)。

当添加了 -D--save-dev 标志时,则会将其安装为开发依赖项(会被添加到 devDependencies 列表),即 npm install xxx -D

全局安装

npm install xxx -g

设置镜像仓库

npm config set registry https://registry.npm.taobao.org
# or
npm config set registry https://registry.npmmirror.com

# revert

npm config set registry https://registry.npmjs.org

npx #

npx 使用教程

Node 自带 npm 模块,安装 Node.js 后可以直接使用 npx 命令。

Pnpm #

https://www.pnpm.cn/

cnpm #

https://github.com/cnpm/cnpm

Yarn #

本文共 865 字,上次修改于 Jul 9, 2024
相关标签: Frontend