持續整合 (CI)
pnpm 可以很容易地用在多種 CI 系統中。
備註
本篇指南提供的範例,都有啟用儲存區快取功能。 不過此功能是非強制的,且開啟儲存區快取不一定會讓安裝更快。 因此您可以依需要決定是否啟用。
Travis
對於 Travis CI,在 .travis.yml 檔案中加入這幾行,就可以利用 pnpm 來安裝相依性
.travis.yml
cache:
  npm: false
  directories:
    - "~/.pnpm-store"
before_install:
  - corepack enable
  - corepack prepare pnpm@latest-8 --activate
  - pnpm config set store-dir ~/.pnpm-store
install:
  - pnpm install
Semaphore
對於 Semaphore,在 .semaphore/semaphore.yml 檔案中加入這幾行,就可以利用 pnpm 來安裝相依性
.semaphore/semaphore.yml
version: v1.0
name: Semaphore CI pnpm example
agent:
  machine:
    type: e1-standard-2
    os_image: ubuntu1804
blocks:
  - name: Install dependencies
    task:
      jobs:
        - name: pnpm install
          commands:
            - corepack enable
            - corepack prepare pnpm@latest-8 --activate
            - checkout
            - cache restore node-$(checksum pnpm-lock.yaml)
            - pnpm install
            - cache store node-$(checksum pnpm-lock.yaml) $(pnpm store path)
AppVeyor
對於 AppVeyor,在 appveyor.yml 檔案中加入這幾行,就可以利用 pnpm 來安裝相依性
appveyor.yml
install:
  - ps: Install-Product node $env:nodejs_version
  - corepack enable
  - corepack prepare pnpm@latest-8 --activate
  - pnpm install
GitHub Actions
對於 GitHub Actions,在 .github/workflows/NAME.yml 中加入這幾行,就可以利用 pnpm 來安裝、快取相依性
.github/workflows/NAME.yml
name: pnpm Example Workflow
on:
  push:
jobs:
  build:
    runs-on: ubuntu-20.04
    strategy:
      matrix:
        node-version: [15]
    steps:
    - uses: actions/checkout@v3
    - uses: pnpm/action-setup@v3
      with:
        version: 8
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v3
      with:
        node-version: ${{ matrix.node-version }}
        cache: 'pnpm'
    - name: Install dependencies
      run: pnpm install