目錄
npm-prune
選擇 CLI 版本
目錄
概要
npm prune [[<@scope>/]<pkg>...]
說明
此命令會移除「多餘的」套件。如果提供套件名稱,則只會移除與所提供名稱相符的套件。
多餘的套件是指存在於 node_modules
資料夾中,但未列在任何套件的相依性清單中的套件。
如果指定 --omit=dev
旗標或將 NODE_ENV
環境變數設定為 production
,此命令將會移除 devDependencies
中指定的套件。
如果使用 --dry-run
旗標,則不會實際進行任何變更。
如果使用 --json
旗標,則 npm prune
所做的變更 (或是在使用 --dry-run
時會做的變更) 會以 JSON 物件的形式列印出來。
在正常運作中,外部模組會自動剪枝,因此你只需要在 --production
旗標中使用此指令。然而,在現實世界中,運作並不總是「正常」。當發生崩潰或錯誤時,此指令有助於清除任何產生的垃圾。
設定
omit
- 預設值:如果
NODE_ENV
環境變數設定為「production」,則為「dev」,否則為空。 - 類型:「dev」、「optional」或「peer」(可設定多次)
從磁碟上的安裝樹中省略的相依類型。
請注意,這些相依項仍然會解析並新增到 package-lock.json
或 npm-shrinkwrap.json
檔案中。它們只是不會實際安裝在磁碟上。
如果套件類型同時出現在 --include
和 --omit
清單中,則會將其包含在內。
如果產生的省略清單包含 'dev'
,則會將 NODE_ENV
環境變數設定為 'production'
以供所有生命週期指令使用。
include
- 預設值
- 類型:「prod」、「dev」、「optional」或「peer」(可設定多次)
允許定義要安裝的相依類型的選項。
這是 --omit=<type>
的反向操作。
在 --include
中指定的相依類型不會被省略,無論在命令列中指定省略/包含的順序為何。
dry-run
- 預設值:false
- 類型:布林值
表示您不希望 npm 做任何變更,並且它應該只報告它會做的事情。這可以傳遞到任何修改您本地安裝的指令中,例如 install
、update
、dedupe
、uninstall
,以及 pack
和 publish
。
注意:這不會受到其他網路相關指令的尊重,例如 dist-tags
、owner
等。
json
- 預設值:false
- 類型:布林值
是否輸出 JSON 資料,而不是一般輸出。
- 在
npm pkg set
中,它會在將設定值儲存到package.json
之前,使用 JSON.parse() 來解析設定值。
並非所有 npm 指令都支援。
foreground-scripts
- 預設值:
false
,除非使用npm pack
或npm publish
,預設值為true
- 類型:布林值
執行已安裝套件的前景處理程序中的所有建置指令碼(即 preinstall
、install
和 postinstall
),與主要 npm 處理程序共用標準輸入、輸出和錯誤。
請注意,這通常會使安裝執行速度變慢,而且會更吵,但對於除錯很有用。
ignore-scripts
- 預設值:false
- 類型:布林值
如果為 true,npm 就不會執行 package.json 檔案中指定的指令碼。
請注意,明確用於執行特定指令碼的命令,例如 npm start
、npm stop
、npm restart
、npm test
和 npm run-script
,如果設定了 ignore-scripts
,仍會執行其預期的指令碼,但不會執行任何前置或後置指令碼。
workspace
- 預設值
- 類型:字串(可以設定多次)
啟用在當前專案設定的工作空間的背景下執行命令,同時透過僅執行此設定選項定義的工作空間來過濾。
設定 workspace
的有效值為
- 工作空間名稱
- 工作空間目錄的路徑
- 父工作空間目錄的路徑(將選取該資料夾中的所有工作空間)
當設定為 npm init
命令時,可以設定為尚未存在的資料夾的工作空間,以建立資料夾並將其設定為專案中的全新工作空間。
此值不會匯出到子處理程序的環境。
workspaces
- 預設值:null
- 類型:null 或布林值
設定為 true 以在所有設定的工作空間的背景下執行命令。
明確將其設定為 false,會導致像 install
這樣的命令完全忽略工作空間。未明確設定時
- 操作
node_modules
樹狀結構的指令(安裝、更新等)會將工作區連結至node_modules
資料夾。- 執行其他操作的指令(測試、執行、發布等)會在根目錄專案上執行,除非在workspace
設定檔中指定一個或多個工作區。
此值不會匯出到子處理程序的環境。
include-workspace-root
- 預設值:false
- 類型:布林值
當指令啟用工作區時,請包含工作區根目錄。
為 false 時,透過 workspace
設定檔指定個別工作區,或透過 workspaces
旗標指定所有工作區,將導致 npm 只在指定的工作區上執行,而不在根目錄專案上執行。
此值不會匯出到子處理程序的環境。
install-links
- 預設值:false
- 類型:布林值
設定時,檔案:通訊協定相依性會打包並安裝為一般相依性,而非建立符號連結。此選項對工作區沒有影響。