あまブログ

ドキドキ......ドキドキ2択クイ〜〜〜〜〜〜〜ズ!!

【Node.js】npmパッケージの公開方法

この記事ではnpmパッケージの公開・バージョンアップ・削除方法を紹介します。

npmパッケージを公開するには、事前にnpmアカウントの作成とGitHubリポジトリの作成が必要です。

docs.npmjs.com

1. 環境

  • macOS:13.1
  • Node.js:18.12.1
  • npm:8.19.2

2. npmパッケージの公開

2-1. package.jsonの作成

公開するnpmパッケージにはpackage.jsonが含まれている必要があります。

プロジェクトのルートディレクトリで以下のコマンドを実行してpackage.jsonを作成します。

$ npm init

プロンプトに表示された各項目の質問に答えると、package.jsonが作成されます。

次に、作成されたpackage.jsonbinの項目を追加します。

"bin": {
  "<package-name>": "./index.js"
},

上記を追加することで、公開したパッケージをnpx <package-name>で使用できるようになります。

2-2. 依存するパッケージの追加

プロジェクトが依存するパッケージをpackage.json"dependencies"または"devDependencies"に追加する必要があります。

プロジェクトのルートディレクトリで以下のコマンドを実行して依存するパッケージを追加します。

# "dependencies"に追加する場合
$ npm install <package-name>

# "devDependencies"に追加する場合
$ npm install <package-name> --save-dev

2-3. npmレジストリへの公開

最後に作成したパッケージをnpmレジストリに公開します。

パッケージをnpmレジストリに公開する前に、パッケージディレクトリへのパスを指定してnpm installを実行し、パッケージのテストを行います。

$ npm install path/to/my-package

次にnpmアカウントにログインします。

$ npm login

最後にプロジェクトのルートディレクトリで以下のコマンドを実行して、パッケージをnpmレジストリに公開します。

$ npm publish

3. npmパッケージのバージョンアップ

公開したパッケージに変更を加えた場合、パッケージのバージョン番号も更新する必要があります。

プロジェクトのルートディレクトリで以下のコマンドを実行して、package.jsonのバージョン番号を更新します。

# パッチバージョンの更新
$ npm version patch
v1.0.1

# マイナーバージョンの更新
$ npm version minor
v1.1.0

# メジャーバージョンの更新
$ npm version major
v2.0.0

npm-versionコマンドは更新したバージョン番号のコミットとタグも同時に生成します。

リモートレポジトリに最新のコミットとタグを反映し、パッケージを公開します。

$ git push origin main
$ git push origin v2.0.0
$ npm publish

4. npmパッケージの削除

パッケージに依存関係がなく、公開後72時間以内であれば、パッケージをnpmレジストリから完全に削除できます。

パッケージの削除には以下の注意が必要です。

  • package@versionは一度しか使用できない
    • 同名・同バージョンのパッケージは削除しても2度と使えない
    • 再度公開する場合はパッケージ名を変えるか、バージョンを上げる必要がある
  • パッケージの削除は取り消しできない
  • パッケージ全体を削除してから24時間が経過するまでは、そのパッケージの新しいバージョンを公開することはできない

プロジェクトのルートディレクトリで以下のコマンドを実行してパッケージをnpmレジストリから削除します。

# パッケージ全体を削除する場合
$ npm unpublish <package-name> -f

# パッケージの特定のバージョンを削除する場合
$ npm unpublish <package-name>@<version>

【参考】