npm-rebuild

重建套件

選擇 CLI 版本

概要

npm rebuild [<package-spec>] ...]
alias: rb

說明

此指令執行下列動作

  1. 執行生命週期腳本 (preinstallinstallpostinstallprepare)
  2. 根據是否啟用 bin 連結連結 bin

此指令特別適用於以下情況,但不限於這些情況

  1. 安裝新版本的node.js,您需要使用更新的二進制檔案重新編譯所有 C++ 外掛程式。
  2. 使用 --ignore-scripts--no-bin-links 安裝,以明確選擇要建置和/或連結 bin 的套件。

如果提供一個或多個套件規格,則只會重新建置名稱和版本與其中一個規格相符的套件。

通常,您不需要執行 npm rebuild,因為它已作為 npm 安裝的一部分為您完成(除非您使用 --ignore-scripts--no-bin-links 抑制這些步驟)。

如果您的套件根目錄中有一個 binding.gyp 檔案,則 npm 將使用預設安裝掛勾

"scripts": {
"install": "node-gyp rebuild"
}

如果 package.json 有自己的 installpreinstall 腳本,則會抑制此預設行為。如果套件指定 "gypfile": false,也會抑制此行為

設定

全域

  • 預設值:false
  • 類型:布林值

在「全域」模式下運作,以便將套件安裝到 prefix 資料夾,而不是目前的作業目錄。有關行為差異的更多資訊,請參閱 資料夾

  • 套件安裝到 {prefix}/lib/node_modules 資料夾,而不是目前的作業目錄。
  • bin 檔案連結到 {prefix}/bin
  • man 頁面連結到 {prefix}/share/man
  • 預設值:true
  • 類型:布林值

指示 npm 為套件可執行檔建立符號連結(或在 Windows 上建立 .cmd shim)。

設定為 false 以不執行此動作。這可以用來解決某些檔案系統不支援符號連結的事實,即使在表面上是 Unix 系統。

foreground-scripts

  • 預設值:false,除非使用 npm packnpm publish,預設值為 true
  • 類型:布林值

執行所有建置腳本(即 preinstallinstallpostinstall)腳本,以在前景處理序中安裝已安裝的套件,與主 npm 處理序共用標準輸入、輸出和錯誤。

請注意,這通常會使安裝執行速度變慢,並產生更多雜訊,但對於除錯很有用。

ignore-scripts

  • 預設值:false
  • 類型:布林值

如果為 true,npm 就不會執行 package.json 檔案中指定的腳本。

請注意,明確用於執行特定腳本的指令,例如 npm startnpm stopnpm restartnpm testnpm run-script,如果設定 ignore-scripts,仍會執行預期的腳本,但不會執行任何前置或後置腳本。

workspace

  • 預設值
  • 類型:字串(可設定多次)

啟用在當前專案設定的工作空間內容中執行指令,同時透過僅執行此設定選項所定義的工作空間來篩選。

設定 workspace 的有效值為

  • 工作空間名稱
  • 工作空間目錄路徑
  • 父工作空間目錄路徑(將選取該資料夾中的所有工作空間)

設定為 npm init 指令時,可以設定為尚未存在的資料夾,以建立資料夾並將其設定為專案中的全新工作空間。

此值不會匯出至子程序的環境。

workspaces

  • 預設值:null
  • 類型:null 或布林值

設定為 true 以在所有設定的工作空間中執行指令。

明確設定為 false 會導致 install 等指令完全忽略工作空間。未明確設定時

  • node_modules 樹狀結構進行操作的指令(install、update 等)會將工作空間連結至 node_modules 資料夾。- 執行其他操作的指令(test、exec、publish 等)會對根專案進行操作,除非workspace 設定中指定一個或多個工作空間。

此值不會匯出至子程序的環境。

include-workspace-root

  • 預設值:false
  • 類型:布林值

在為指令啟用工作空間時,請包含工作空間根目錄。

設定為 false 時,透過 workspace 設定指定個別工作空間,或透過 workspaces 旗標指定所有工作空間,將導致 npm 僅對指定的工作空間進行操作,而不對根專案進行操作。

此值不會匯出至子程序的環境。

  • 預設值:false
  • 類型:布林值

設定時,file: 協定相依項會打包並安裝為一般相依項,而不是建立符號連結。此選項對工作空間沒有影響。

另請參閱