自作npmパッケージの公開

自作npmパッケージを作成したので、公開/バージョンアップ/削除の方法をまとめておきます。

ちなみに作成したものは以下です。

www.npmjs.com

npmパッケージの公開方法

1. プロジェクトのセットアップ
  • プロジェクトフォルダの作成
  • package.jsonに必要な情報(名前、バージョン、説明等)を設定する。

    • 公開するnpmパッケージにはpackage.jsonが含まれている必要がある。
      プロジェクトのルートディレクトリでnpm initコマンドを実行し、プロンプトに表示された各項目の質問に答えるとpackage.jsonが作成される。
      【参考】
      Creating a package.json file
  • package.jsonbin項目を追加し、公開したパッケージをnpx 自作パッケージ名で使用できる。

"bin": {
  "自作パッケージ名": "./index.js"
},
2. 依存パッケージの追加
  • 依存パッケージをpackage.jsonの以下に追加する。

    • "dependencies":必要な外部ライブラリやパッケージなど、アプリケーションの実行に必要なものを定義。
    • "devDependencies":外部ライブラリやパッケージなど、ローカルでの開発のみに必要なものを定義。
  • 必要な依存パッケージを追加するため、
    プロジェクトのルートディレクトリでnpm installを実行。

# "dependencies"に追加
$ npm install <パッケージ名>

# "devDependencies"に追加
$ npm install <パッケージ名> --save-dev

【参考】
Specifying dependencies and devDependencies in a package.json file

3. ローカルでのリンク作成(オプション)
  • プロジェクトのディレクトリでnpm linkを実行。
    他のローカルプロジェクトでこのパッケージを利用できるようになる。
4. アカウント作成とログイン
  • npmの公式でアカウント作成。
  • ターミナルでnpm loginと入力し、ログイン。
5. 公開

npm publishを実行し、エラーがなければ、npmリポジトリにパッケージが公開される。

npmパッケージのバージョンアップ方法

1. バージョン更新
  • 公開されているパッケージに変更を加えた場合、自分のコードに依存している他の人に変更を伝えるために、バージョン番号を更新する必要がある。
# メジャーバージョンアップ: 大きな変更があって、前のバージョンと互換性がなくなる場合。新しい主要機能の追加など。
$ npm version major
v2.0.0

# マイナーバージョンアップ: 以前のバージョンとの互換性を保ちつつ、新しい機能を追加する場合。中程度の改善や機能追加など。
$ npm version minor
v1.1.0

# パッチバージョンアップ: 小さなバグ修正や、既存の機能の軽微な改善を行う場合。
$ npm version patch
v1.0.1
2. 変更のコミット
  • npm-versionは更新したバージョン番号のコミットとtagも同時に生成。 リモートレポジトリに最新のコミットとタグを反映。
3. 再公開

ターミナルでnpm publishコマンドを再度実行。 新しいバージョンがnpmリポジトリに公開される。

【参考】
Updating your published package version number
npm-version
2.6 Git の基本 - タグ

npmパッケージの削除方法

1. 最近公開されたバージョンの削除
  • 特定バージョンを削除する場合、ターミナルで以下のコマンドを使用。
$ npm unpublish <パッケージ名>@<バージョン番号>
2. 全バージョンの削除
$ npm unpublish <パッケージ名> -f

注意点:

  • 一度削除すると、同じバージョン番号での再公開はできない。
  • 72時間の制限は、誤ったバージョンを削除できるようにするためのもの。単一バージョンの削除はこの期間に限定される。
  • 完全削除後、同じ名前で再公開する場合は24時間待つ必要がある。

【参考】
Unpublishing packages from the registry
npm Unpublish Policy
npm-unpublish