bauer's diary

凡人の凡人による凡人のための備忘録

npmパッケージ公開手順の備忘録

はじめに

最近下記のnpmパッケージを公開したのですが、
手順をすっかり忘れていたので、備忘録としてここにまとめておきます。

www.npmjs.com

npmデベロッパー登録

まずはこちらのサイトでnpmデベロッパーの登録を行います。
https://www.npmjs.com/signup

f:id:kitakitabauer:20170415021224p:plain

必須な入力項目は下記3つです。

  • Public Email
  • Username
  • Password

Usernameですが、"https://www.npmjs.com/~username" というURLになるので後悔のないユーザ名にしましょう。
"Sign up for the npm Weekly" という項目は、npm Weekly というnpmの最新情報を流してくれるメールマガジンに登録するかどうかなので、最新動向に興味があればチェックします。

npmrc作成

作成したデベロッパーアカウントの権限でnpmレジストリにアクセスするためのtoken情報を持つ ~/.npmrc を作成します。

% npm adduser
Username: npmデベロッパーサイトで入力したUsername
Password: npmデベロッパーサイトで入力したPassword
Email: (this IS public) npmデベロッパーサイトで入力したPublic Email
Logged in as kitakitabauer on https://registry.npmjs.org/.

Git/GitHubリポジトリの準備

npmパッケージの公開元になるソース管理をGit/GitHubで行います。
ここで注意が必要なのですが、npmでは大文字が使えないので、名称を合わせたい場合はリポジトリ名に気をつけてください。

package.json作成

Gitリポジトリをnpm管理下とするためにpackage.jsonを作成します。
npm initで作成しても、ファイルを直接用意してもかまいません。
ここで記述した内容がサイトにも公開されるので、情報に間違いのないように注意します。

{
  "name": "パッケージ名",
  "version": "バージョン。はじめは0.0.1とか1.0.0で始めるのが定石",
  "description": "パッケージの処理概要",
  "main": "パッケージで最初に呼ばれるモジュールID",
  …
  "keywords": [
    "npm searchで表示される検索キーワード",
    …
  ],
  "homepage": "プロジェクトのホームページ",
  "author": "作者名",
  "license": "ライセンスの種類"
}

それぞれの項目の意味や書き方は、こちらの公式ドキュメントを見れば明快です。
npm package.json 日本語版 取扱説明書

ここでも1点注意が必要なのですが、既に公開済のパッケージと同じ名前にすることはできないので、事前にnpmサイトで検索して使われていないことを確認してください。

パッケージの中身を作成・コミット

公開したいパッケージの中身を実装します。
尚、README.mdにnpmのバージョンを表示させたい場合は、下記のようなバッジサービスを利用してURLを取得します。
badge.fury.io

npmのバージョンを上げても、下記のような書き方にしておけばREADME上のバッジもしばらく後に反映されます。(おそらくCDNのキャッシュによる遅延かと思われます)

[![npm version](https://badge.fury.io/js/check-ec2-event.svg)](https://badge.fury.io/js/check-ec2-event)

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

npm version コマンドで、下記一連の流れを行ってくれます。

  1. package.jsonの "version" を更新してコミット
  2. gitのtagも同じバージョンで作成

コマンドの最後に指定するバージョンはセマンティックバージョニングに準拠しています。

$ npm version (major|minor|patch)

コマンド実行後、忘れずにGitHubにもタグ毎pushしておきます。

$ git push origin master --tags

パッケージ公開

ついに外部公開します。
npm publish コマンドでパブリックに公開します。

$ npm publish
+ check-ec2-event@0.0.1

確認

公開したパッケージがnpmレジストリで確認できたらOKです。
f:id:kitakitabauer:20170419223834p:plain

npm installも成功することを確認して完了です。

% npm i check-ec2-event
/private/tmp
└─┬ check-ec2-event@0.0.8
…

アップデート

アップデートしたいときは、再度

  1. コミット
  2. npm version
  3. GitHubにpush
  4. npm publish

の流れを辿ります。

おわりに

とても簡単に公開できるので、便利なツールは世界中の人にどんどん触ってもらってブラッシュアップしましょう。

おしまい。