目錄
npm-publish
選擇 CLI 版本
概要
npm publish <package-spec>
說明
將套件發布到註冊表,以便可以按名稱安裝。
預設情況下,npm 將發布到公用註冊表。這可以透過指定不同的預設註冊表或在名稱中使用 範圍
,並結合範圍設定的註冊表(請參閱 package.json
)來覆寫。
一個 套件
的詮釋方式與其他指令相同(例如 npm install
),而且可以是
- a) 包含由
package.json
檔案描述的程式之資料夾 - b) 包含 (a) 的壓縮 tar 檔
- c) 解析為 (b) 的網址
- d) 在註冊表上發布的
<名稱>@<版本>
(請參閱註冊表
)和 (c) - e) 指向 (d) 的
<名稱>@<標籤>
(請參閱npm dist-tag
) - f) 具有滿足 (e) 的「最新」標籤的
<名稱>
- g) 解析為 (a) 的
<git 遠端網址>
如果套件名稱和版本組合已存在於指定的註冊表,則發布將會失敗。
一旦套件以特定名稱和版本發布,即使使用 npm unpublish
移除,也永遠無法再次使用該特定名稱和版本組合。
從 npm@5
開始,在發布期間,將會將 tar 檔的 sha1sum 和包含 tar 檔 sha512sum 的完整性欄位提交到註冊表。後續安裝將使用最強的受支援演算法來驗證下載。
類似於 --dry-run
,請參閱 npm pack
,它會找出要包含的檔案,並將它們打包成要上傳到註冊表的 tar 檔。
套件中包含的檔案
若要查看套件中將包含的內容,請執行 npm pack --dry-run
。預設情況下,所有檔案都會包含,但有以下例外
-
與套件安裝和發行相關的特定檔案始終會包含。例如,
package.json
、README.md
、LICENSE
等。 -
如果
package.json
中有「檔案」清單,則只會包含指定的檔案。(如果指定目錄,則會遞迴處理並包含其內容,但會套用相同的忽略規則。) -
如果存在
.gitignore
或.npmignore
檔案,則會從套件中排除該檔案及其所有子目錄中的忽略檔案。如果同時存在這兩個檔案,則會忽略.gitignore
,只會使用.npmignore
。.npmignore
檔案遵循與.gitignore
檔案相同的模式規則 -
如果檔案符合特定模式,則永遠不會包含該檔案,除非明確將其新增至
package.json
中的"files"
清單,或在.npmignore
或.gitignore
檔案中使用!
規則取消忽略。 -
符號連結永遠不會包含在 npm 套件中。
請參閱 developers
,以取得已發佈套件中所包含內容的完整詳細資料,以及套件建置方式的詳細資料。
設定
標籤
- 預設值:「最新」
- 類型:字串
如果您要求 npm 安裝套件,但未指定特定版本,則它會安裝指定的標籤。
此外,如果未提供明確標籤,則會將標籤新增至 npm tag
指令指定的套件@版本。
當 npm diff
指令使用此標籤時,預設會使用此標籤來擷取 tarball,並與本機檔案進行比較。
存取
- 預設值:新套件為「公開」,現有套件不會變更目前的層級
- 類型:null、「受限」或「公開」
如果您不希望您的範圍套件公開可見(且可安裝),請設定 --access=restricted
。
未設定範圍的套件無法設定為 restricted
。
注意:這預設為不變更現有套件的目前存取權限。在發布期間指定 restricted
或 public
的值將會變更現有套件的存取權限,其方式與 npm access set status
相同。
乾式執行
- 預設值:false
- 類型:布林值
表示您不希望 npm 進行任何變更,且它只應報告它會執行的動作。這可以傳遞到任何修改您本機安裝的指令中,例如 install
、update
、dedupe
、uninstall
,以及 pack
和 publish
。
注意:這不受其他網路相關指令採用,例如 dist-tags
、owner
等。
一次性密碼
- 預設值:null
- 類型:null 或字串
這是來自雙重驗證器的單次密碼。在使用 npm access
發布或變更套件權限時需要它。
如果未設定,且登錄回應因單次密碼的挑戰而失敗,npm 將會在命令列中提示輸入密碼。
工作區
- 預設值
- 類型:字串(可以設定多次)
啟用在目前專案設定的工作空間的內容中執行指令,同時透過僅執行此設定選項所定義的工作空間來過濾。
workspace
設定的有效值為
- 工作空間名稱
- 工作空間目錄的路徑
- 父工作空間目錄的路徑(將會選取該資料夾中的所有工作空間)
當設定為 npm init
指令時,這可能會設定為尚未存在的資料夾,以建立資料夾並將其設定為專案中的全新工作空間。
此值不會匯出至子程序的環境。
工作區
- 預設值:null
- 類型:null 或布林值
設為 true 以在所有設定的工作區中執行命令。
明確將此設定為 false 將導致 install
等命令完全忽略工作區。未明確設定時
- 在
node_modules
樹上運作的命令(install、update 等)將連結工作區至node_modules
資料夾。- 執行其他動作的命令(test、exec、publish 等)將在根目錄專案上運作,除非在workspace
設定中指定一個或多個工作區。
此值不會匯出至子程序的環境。
包含工作區根目錄
- 預設值:false
- 類型:布林值
在針對命令啟用工作區時,包含工作區根目錄。
為 false 時,透過 workspace
設定指定個別工作區,或透過 workspaces
旗標指定所有工作區,將導致 npm 僅在指定的工作區上運作,而非根目錄專案。
此值不會匯出至子程序的環境。
來源
- 預設值:false
- 類型:布林值
從受支援的雲端 CI/CD 系統發布時,套件將公開連結至其建置和發布的位置。
此設定無法與 provenance-file
搭配使用。
來源檔案
- 預設值:null
- 類型:路徑
發布時,將使用指定路徑中的來源套件。
此設定無法與 provenance
搭配使用。
另請參閱
- 套件規格
- npm-packlist 套件
- npm 登錄
- npm 範圍
- npm adduser
- npm owner
- npm deprecate
- npm dist-tag
- npm pack
- npm profile