跳至主要內容
版本:7.x

pnpm install

命令別名:i

使用 pnpm install 來為專案安裝所有相依套件。

在 CI 環境中,如果 lockfile 存在但需要更新時,會使安裝失敗。

workspace 中,pnpm install 會安裝所有專案的相依套件。 如要停用此行為,請將 recursive-install 設為 false

命令簡要

命令效果
pnpm i --offline僅從 store 離線安裝
pnpm i --frozen-lockfile不更新 pnpm-lock.yaml
pnpm i --lockfile-only僅更新 pnpm-lock.yaml

Options

--offline

  • 預設值:false
  • 型別:Boolean

此值為 true 時,pnpm 只使用 store 中可用的套件。 如果在本機無法找到套件,則安裝會失敗。

--prefer-offline

  • 預設值:false
  • 型別:Boolean

此值為 true 時,將不檢查快取資料是否過時,但將從伺服器請求遺漏的資料。 若要強制啟用完全離線模式,請使用 --offline

--prod, -P

如果 NODE_ENV 環境變數被設為 production 時,pnpm 將不會安裝任何列在 devDependencies 中的套件。 使用此旗標來指示 pnpm 的 production 狀態,而忽略 NODE_ENV 內容。

--dev, -D

無視 NODE_ENV 內容,僅安裝 devDependencies 記載的套件。

--no-optional

不安裝位於 optionalDependencies 的套件。

--lockfile-only

  • 預設值:false
  • 型別:Boolean

使用時,僅更新 pnpm-lock.yamlpackage.json。 不會對 node_modules 目錄寫入任何檔案。

--fix-lockfile

自動修正損壞的 lockfile 項目。

--frozen-lockfile

  • 預設值:
    • 非 CI:false
    • CI:當 lockfile 存在時為 true
  • 型別:Boolean

此值為 true 時,pnpm 不會產生 lockfile,並且在 lockfile 與清單不同步、需要更新,或 lockfile 不存在時,會使安裝失敗。

此設定值在 CI 環境中預設為 true。 用來偵測 CI 環境的程式碼如下:

https://github.com/watson/ci-info/blob/44e98cebcdf4403f162195fbcf90b1f69fc6e047/index.js#L54-L61
exports.isCI = !!(
env.CI || // Travis CI, CircleCI, Cirrus CI, Gitlab CI, Appveyor, CodeShip, dsari
env.CONTINUOUS_INTEGRATION || // Travis CI, Cirrus CI
env.BUILD_NUMBER || // Jenkins, TeamCity
env.RUN_ID || // TaskCluster, dsari
exports.name ||
false
)

--reporter=<name>

  • 預設值:
    • For TTY stdout: default
    • For non-TTY stdout: append-only
  • 類型:defaultappend-onlyndjsonsilent

此選項讓您可以選擇要使用的 reporter,其負責將安裝過程中的偵錯資訊紀錄至終端機。

  • silent - 除了嚴重錯誤外,不會輸出紀錄至主控台
  • default - 當 stdout 為 TTY 時的預設 reporter
  • append-only(1.29.1 版加入)- 總是將輸出附加在尾端。 不會進行游標操作
  • ndjson -- 紀錄最詳盡的 reporter 以 ndjson 格式印出所有日誌

--use-store-server

  • 預設值:false
  • 型別:Boolean

在背景啟動 store 伺服器。 安裝完成後,store 伺服器仍會持續執行。 若要停止 store 伺服器,請執行 pnpm server stop

--shamefully-hoist

  • 預設值:false
  • 型別:Boolean

建立平鋪的 node_modules 結構,類似 npmyarn 的樣子。 警告:極度不鼓勵使用。

--ignore-scripts

  • 預設值:false
  • 類型:Boolean

Do not execute any scripts defined in the project package.json and its dependencies.

--filter <package_selector>

Read more about filtering.