package-spec

包名指定器

选择 CLI 版本

描述

npm install 这样的命令以及 package.json 中的依赖部分使用包名指定器。这可以是许多不同的东西,它们都指向一个“包”。示例包括包名、git URL、tarball 或本地目录。在使用此包名指定器的 npm 命令的帮助输出中,这些通常被称为 <package-spec>

包名

  • [<@scope>/]<pkg>
  • [<@scope>/]<pkg>@<tag>
  • [<@scope>/]<pkg>@<version>
  • [<@scope>/]<pkg>@<version range>

通过名称引用一个包,带或不带范围,并可选地带标签、版本或版本范围。这通常与 registry 配置结合使用,以引用注册表中的包。

示例

别名

  • <alias>@npm:<name>

主要用于像 npm install 这样的命令以及 package.json 中的依赖部分,它通过别名引用一个包。 <alias> 是包在 node_modules 文件夹中具体化的名称,而 <name> 指的是在配置的注册表中找到的包名。

有关通过名称引用包的更多信息,请参见上面的 包名,有关配置引用包名时使用哪个注册表的更多信息,请参见 registry

示例

  • semver:@npm:@npmcli/semver-with-patch
  • semver:@npm:[email protected]
  • semver:@npm:semver@legacy

文件夹

  • <folder>

这指向本地文件系统上的一个包。具体来说,这是一个包含 package.json 文件的文件夹。这应该始终以 /./(或您的操作系统等效项)为前缀,以减少混淆。npm 当前会将包含多个 / 的字符串解析为一个文件夹,但这是将来版本中可能会删除的遗留行为。

示例

  • ./my-package
  • /opt/npm/my-package

Tarballs

  • <tarball file>
  • <tarball url>

示例

  • ./my-package.tgz
  • https://registry.npmjs.org/semver/-/semver-1.0.0.tgz

指向 tarball 格式的包,无论是在本地文件系统上还是通过 URL 远程访问。这是包上传到注册表后存在的格式。

git URL

  • <git:// url>
  • <github username>/<github project>

指向 git 仓库中的包。这可以是完整的 git URL、git 简写或 GitHub 上的用户名/包。您可以通过附加 #ref 来指定 git 标签、分支或其他 git ref。

示例

参见