跳到主要內容

工作區監控

註解

工作區監控在 Lerna 6.4.0 版中提供。

Lerna 可以監控套件中的檔案變更,並自動從儲存庫根目錄執行指令。如果您需要在開發工作流程中更新檔案時重建套件或重新執行測試,這很有用。

這可取代個別為每個套件設定監控的需要。

範例

監控所有套件並回顯套件名稱和變更的檔案

$ lerna watch -- echo \$LERNA_PACKAGE_NAME \$LERNA_FILE_CHANGES

監控所有套件,並在套件中的檔案變更時執行「建置」指令碼

$ lerna watch -- lerna run build --scope=\$LERNA_PACKAGE_NAME

監控所有套件,並在變更影響所有套件時執行「建置」指令碼

$ lerna watch -- lerna run build --since

監控單一套件,並在其中的檔案變更時執行「建置」指令碼

$ lerna watch --scope="my-package-1" -- lerna run build --scope=\$LERNA_PACKAGE_NAME

監控單一套件及其倚賴項,在其中任何一個變更時執行「建置」指令碼

$ lerna watch --scope="my-package-1" --include-dependencies -- lerna run build --scope=\$LERNA_PACKAGE_NAME

監控所有套件,並執行變更套件和所有倚賴它的套件的 build 指令碼

$ lerna watch -- lerna run build --scope=\$LERNA_PACKAGE_NAME --include-dependents

如需更進階的篩選,請參閱篩選選項文件。如需更多可用選項,請參閱lerna watch文件。

觀看環境變數

Lerna 會在執行內部指令時設定環境變數 $LERNA_PACKAGE_NAME$LERNA_FILE_CHANGES。可用於自訂要執行的指令。

  • $LERNA_PACKAGE_NAME 會取代已變更套件的名稱。
  • $LERNA_FILE_CHANGES 會取代已變更的檔案。如果在一個週期中偵測到多個檔案變更,$LERNA_FILE_CHANGES 將會全部列出來,並以空格分隔。
註解

當使用 $LERNA_PACKAGE_NAME$LERNA_FILE_CHANGES 時,您需要使用反斜線 (\) 來跳脫 $。請參閱上方的 範例

使用套件管理員執行

上方的範例展示在終端機中直接使用 lerna。不過,您也可以使用套件管理員使用 lerna,而不將其新增到您的路徑中。

pnpm

pnpm lerna watch -- lerna run build --scope=\$LERNA_PACKAGE_NAME

yarn

yarn lerna -- watch -- lerna run build --scope=\$LERNA_PACKAGE_NAME

npx

npx -c 'lerna watch -- lerna run build --scope=\$LERNA_PACKAGE_NAME'
註解

當使用 npx 時,您需要使用 -c,並用單引號 (') 將整個 lerna watch 指令包圍起來。如果不這樣做,npx 會在將指令傳遞給 lerna 之前嘗試取代 觀看環境變數,導致 $LERNA_PACKAGE_NAME$LERNA_FILE_CHANGES 的值始終為空。

註解

如果您在 Windows 中使用 Lerna,您必須將環境變數框在「%」中。例如

$ lerna watch -- lerna run build --scope=%LERNA_PACKAGE_NAME% --include-dependents