解釋一下這兩行 "pub": "pnpm --filter "./packages/*" run pub", "pub:beta": "pnpm --filter "./packages/*" run pub:beta"

龙陌發表於2024-05-12

F:\learn-front\code-inspector\package.json

這兩行命令是用於在JavaScript專案中釋出(publish)軟體包到npm倉庫的指令碼定義,常見於使用pnpm作為包管理器的Monorepo(單倉庫多專案)結構的專案中。
這裡具體解釋一下每部分的含義:

  1. pub: 這是一個npm指令碼的別名,當在命令列中執行 npm run pubyarn pub(如果使用Yarn作為包管理器)時,它會執行對應的命令。
    這裡定義的是使用pnpm命令,並結合--filter選項來指定操作範圍。"./packages/*"表示操作應用於packages目錄下所有子目錄中的專案。
    緊跟的run pub意味著它會執行每個匹配專案中的pub指令碼,這通常是用來發布專案的預設版本到npm registry。

  2. pub:beta: 類似於上面的pub,但這是釋出beta版本的指令碼定義。
    當你執行 npm run pub:betayarn pub:beta時,它同樣會利用pnpm並應用過濾器"./packages/*"來操作所有子包,但這次執行的是每個包中的pub:beta指令碼。
    這通常涉及構建併發布帶有beta標籤或其他標識的預釋出版本,以便在正式釋出前進行測試或讓使用者提前試用。

總結來說,這兩個指令碼提供了快速釋出專案到npm倉庫的便捷方式,分別對應正式釋出和預釋出(如beta版本)兩種場景,充分利用了pnpm的過濾功能來批次操作Monorepo中的多個包。

packages/core/package.json

{
  "scripts": {
      "pub": "pnpm publish",
    "pub:beta": "pnpm publish --tag beta"
  }
}

相關文章