semantic-releaseによるスコープ付きnpmパッケージの公開

スコープ付きパッケージ(@org/package)をパブリックアクセスでnpmに公開するsemantic-release設定。組織スコープパッケージとカスタムレジストリの処理。

Plugin Configuration

詳細な説明

スコープ付きパッケージの公開

スコープ付きnpmパッケージ(例:@myorg/my-package)は、特にアクセスレベルに関して正しく公開するための特定の設定が必要です。

設定

{
  "branches": ["main"],
  "plugins": [
    "@semantic-release/commit-analyzer",
    "@semantic-release/release-notes-generator",
    ["@semantic-release/npm", {
      "npmPublish": true,
      "pkgRoot": "."
    }],
    "@semantic-release/github"
  ]
}

package.jsonの要件

スコープ付きパッケージにはpackage.jsonにpublishConfigフィールドを含める必要があります:

{
  "name": "@myorg/my-package",
  "publishConfig": {
    "access": "public"
  }
}

"access": "public"がないと、npmはスコープ付きパッケージをデフォルトでrestricted(プライベート)にします。

カスタムレジストリ

プライベートレジストリ(GitHub PackagesやArtifactoryなど)に公開する場合:

{
  "name": "@myorg/my-package",
  "publishConfig": {
    "registry": "https://npm.pkg.github.com"
  }
}

ユースケース

npm、GitHub Packages、プライベートレジストリにスコープ付きパッケージを公開する組織。デザインシステムライブラリ、共有ユーティリティパッケージ、組織スコープ内で公開される内部ツールに一般的。

試してみる — Semantic Release Config Builder

フルツールを開く