package-spec

套件名稱規範

選擇 CLI 版本

說明

npm install 這樣的指令和 package.json 中的相依性區段會使用套件名稱規範。這可能是指「套件」的許多不同事物。範例包括套件名稱、git 網址、tarball 或本機目錄。這些通常會在使用此套件名稱規範的 npm 指令的說明輸出中稱為 <package-spec>

套件名稱

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

根據名稱、有無範圍,以及標籤、版本或版本範圍來指涉套件。這通常與 registry 設定搭配使用,以指涉註冊表中的套件。

範例

  • npm
  • @npmcli/arborist
  • @npmcli/arborist@latest
  • npm@6.13.1
  • npm@^4.0.0

別名

  • <alias>@npm:<name>

主要由像 npm install 這樣的指令和 package.json 中的相依性區段使用,這會根據別名指涉套件。 <alias> 是套件在 node_modules 資料夾中具體化的名稱,而 <name> 指涉在設定的註冊表中找到的套件名稱。

請參閱上方的 套件名稱 以取得更多關於根據名稱指涉套件的資訊,以及 registry 以設定在根據名稱指涉套件時使用的註冊表。

範例

  • semver:@npm:@npmcli/semver-with-patch
  • semver:@npm:semver@7.2.2
  • semver:@npm:semver@legacy

資料夾

  • <資料夾>

這是指本機檔案系統上的套件。具體來說,這是一個包含 package.json 檔案的資料夾。這應該總是加上 /./(或作業系統等效項)的前綴,以減少混淆。npm 目前會將包含多個 / 的字串解析為資料夾,但這是可能會在未來版本中移除的舊有行為。

範例

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

Tarball

  • <tarball 檔案>
  • <tarball 網址>

範例

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

是指 tarball 格式的套件,在本地檔案系統上或透過網址遠端存取。這是套件上傳到註冊表時存在的格式。

git 網址

  • <git:// 網址>
  • <github 使用者名稱>/<github 專案>

是指 git 儲存庫中的套件。這可以是完整的 git 網址、git 簡寫,或 GitHub 上的使用者名稱/套件。您可以透過附加 #ref 來指定 git 標籤、分支或其他 git 參照。

範例

  • https://github.com/npm/cli.git
  • git@github.com:npm/cli.git
  • git+ssh://git@github.com/npm/cli#v6.0.0
  • github:npm/cli#HEAD
  • npm/cli#c12ea07

另請參閱