Chapter 08

Scopedパッケージ

yusuke
yusuke
2021.05.25に更新

ライブラリにはScopedパッケージもあります。このScopedパッケージは、いくつかのパッケージをグループにまとめたパッケージのことです。

例えば、Babelは@babel/core@babel/preset-typescriptなど、Babelが公開しているいくつかのパッケージがありますが、それを@babel/〜というグループでまとめています。

このように@scope/package-nameでまとめたパッケージのことをScopedパッケージといいます。

🔍 Scopedパッケージの作成

もしScopedパッケージを作成するなら、これまでの手順に2つ変更点があります。

Scopeの指定

package.jsonのnameに@scopeの名前をつける。

package.json
{
  "name": "@scope/package-name", // 👈 例) @babel/core
  "version": "1.0.0",
  "main": "src/index.js",
  "license": "MIT",
  // ...skipped
}

もしくはプロジェクトの初期化で、以下のコマンドで実行する。

$ npm init --scope=@your-scope-name

GitHub Actions

release.ymlにScopeを指定します。

name: CICD

# ...skipped

jobs:
  release:
    name: release-npm-package
    runs-on: ubuntu-latest
    steps:
      - name: checkout
        uses: actions/checkout@v2
      - name: setup-node
        uses: actions/setup-node@v2
        with:
          node-version: 14.x
          registry-url: 'https://registry.npmjs.org'
          # 👇 追加したよ
          # Config for scoped package
          always-auth: true
          scope: '@your-scope-name'

      # ...skipped