npm 發(fā)布 publish

2021-10-29 10:50 更新

發(fā)布包

概要

npm publish [<tarball>|<folder>] [--tag <tag>] [--access <public|restricted>] [--otp otpcode] [--dry-run]


Publishes '.' if no argument supplied
Sets tag 'latest' if no --tag specified

描述

將包發(fā)布到注冊(cè)表,以便可以按名稱安裝。

默認(rèn)情況下,npm 將發(fā)布到公共注冊(cè)表。這可以通過指定不同的默認(rèn)注冊(cè)表或在名稱中使用npm-scope來覆蓋(請(qǐng)參閱參考資料package.json)。

  • <folder>:包含 package.json 文件的文件夾
  • <tarball>:一個(gè) url 或文件路徑到 gzip 壓縮的 tar 存檔,其中包含一個(gè)包含 package.json 文件的文件夾。
  • [--tag <tag>]?使用給定的標(biāo)簽注冊(cè)已發(fā)布的包,以便npm install <name>@<tag>安裝此版本。默認(rèn)情況下,npm publish更新并npm install安裝latest標(biāo)記。有關(guān)標(biāo)簽的詳細(xì)信息,請(qǐng)參閱npm-dist-tag
  • [--access <public|restricted>]?告訴注冊(cè)中心這個(gè)包應(yīng)該被發(fā)布為公開的還是受限的。僅適用于范圍包,默認(rèn)為restricted.?如果你沒有付費(fèi)帳戶,則必須發(fā)布--access public?以發(fā)布范圍包。
  • [--otp <otpcode>]?如果你在auth-and-writes模型中啟用了雙因素身份驗(yàn)證,那么你可以提供來自你的身份驗(yàn)證器的代碼。如果你不包含此內(nèi)容并且你正在從TTY 運(yùn)行,那么系統(tǒng)會(huì)提示你。
  • [--dry-run]?截至npm@6,除了實(shí)際發(fā)布到注冊(cè)表之外,所有發(fā)布都可以做。報(bào)告將要發(fā)布的內(nèi)容的詳細(xì)信息。

如果指定的注冊(cè)表中已存在包名稱和版本組合,則失敗。

一旦使用給定的名稱和版本發(fā)布包,該特定的名稱和版本就再也不能使用,即使使用npm-unpublish將其刪除。

npm@5, sha1sum 和帶有 sha512sum tarball 的完整性字段都將在發(fā)布期間提交給注冊(cè)表。后續(xù)安裝將使用支持的最強(qiáng)算法來驗(yàn)證下載。

類似于--dry-runsee?npm-pack,它計(jì)算出要包含的文件并將它們打包成一個(gè) tarball 以上傳到注冊(cè)表。

包中包含的文件

要查看包中將包含的內(nèi)容,請(qǐng)運(yùn)行npx npm-packlist.?默認(rèn)情況下包含所有文件,但以下情況除外:

  • 始終包含與軟件包安裝和分發(fā)相關(guān)的某些文件。例如,package.json、README.md、?LICENSE等。
  • 如果?package.json中有"files"列表,則僅包含指定的文件。(如果指定了目錄,則它們將被遞歸遍歷并包含其內(nèi)容,遵循相同的忽略規(guī)則。)
  • 如果有一個(gè).gitignore.npmignore文件,則該文件中被忽略的文件和所有子目錄都將從包中排除。如果?兩個(gè)文件都存在,則.gitignore忽略 ,只?.npmignore使用 。 .npmignore文件遵循相同的模式規(guī)則?的.gitignore文件
  • 如果文件匹配某些模式,那么它將永遠(yuǎn)不會(huì)被包含,除非明確添加到 中的"files"列表中package.json,或者!使用.npmignore.gitignore文件中的規(guī)則取消忽略。
  • 符號(hào)鏈接從不包含在 npm 包中。

有關(guān)已發(fā)布包中包含的內(nèi)容的完整詳細(xì)信息,以及有關(guān)如何構(gòu)建包的詳細(xì)信息,請(qǐng)參閱developers。

配置

tag 標(biāo)簽

  • 默認(rèn)值:new
  • 類型:String

字符串如果你要求 npm 安裝一個(gè)包并且沒有告訴它一個(gè)特定的版本,那么它會(huì)安裝指定的標(biāo)簽。

npm tag?如果未給出顯式標(biāo)簽,則也是添加到命令指定的 package@version 的標(biāo)簽。

當(dāng)被npm diff命令使用時(shí),這是用于獲取默認(rèn)情況下將與本地文件進(jìn)行比較的 tarball 的標(biāo)簽。

access 權(quán)限

  • 默認(rèn)值:restricted 表示有范圍的包,public 表示無范圍的包
  • 類型:bull、restrictedpublic

發(fā)布范圍包時(shí),訪問級(jí)別默認(rèn)為restricted。如果您希望您的范圍包公開可見(和可安裝) set?--access=public。的唯一有效值accesspublic和?restricted。無作用域的包的訪問級(jí)別始終為public.

注意:--accessnpm publish命令上使用標(biāo)志只會(huì)在包的初始發(fā)布時(shí)設(shè)置包訪問級(jí)別。任何npm publish使用該--access標(biāo)志的后續(xù)命令都不會(huì)影響訪問級(jí)別。要在初始發(fā)布后更改訪問級(jí)別,請(qǐng)使用npm access.

dry-run 試運(yùn)行

  • 默認(rèn)值:false
  • 類型:Boolean

表示你不希望 npm 進(jìn)行任何更改并且它應(yīng)該只報(bào)告它會(huì)做的事情。這可以被傳遞到任何修改本地安裝,例如,命令的install,update,?dedupeuninstall,以及packpublish。

注意:這不是由其他網(wǎng)絡(luò)相關(guān)的命令,如兌現(xiàn)dist-tags,?owner等等。

otp

  • 默認(rèn)值:null
  • 類型:nullString

這是來自兩因素身份驗(yàn)證器的一次性密碼。使用npm access.

如果未設(shè)置,并且注冊(cè)表響應(yīng)失敗并質(zhì)詢一次性密碼,npm 將在命令行上提示輸入密碼。

workspace 工作區(qū)

  • 默認(rèn):
  • 類型:String(可多次設(shè)置)

允許在當(dāng)前項(xiàng)目的已配置工作區(qū)的上下文中運(yùn)行命令,同時(shí)通過僅運(yùn)行此配置選項(xiàng)定義的工作區(qū)進(jìn)行過濾。

workspace配置的有效值為:

  • 工作區(qū)名稱
  • 工作區(qū)目錄的路徑
  • 父工作區(qū)目錄的路徑(將導(dǎo)致選擇所有嵌套工作區(qū))

為該npm init命令設(shè)置時(shí),可以將其設(shè)置為尚不存在的工作區(qū)的文件夾,以創(chuàng)建該文件夾并將其設(shè)置為項(xiàng)目中的全新工作區(qū)。

此值不會(huì)導(dǎo)出到子進(jìn)程的環(huán)境中。

workspaces

  • 默認(rèn)值:false
  • 類型:Boolean

啟用在所有已配置工作區(qū)的上下文中運(yùn)行命令。

此值不會(huì)導(dǎo)出到子進(jìn)程的環(huán)境中。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)