npm(nodejsのパッケージマネージャー)には簡単に自作のモジュールをuploadできます。
こちらの記事で初回アップロードの手順は詳細に書いてあります。
初回はもちろん、バージョンアップして2回目以降のnpm publish
をする時の注意点を記しておきます。
手順
- test
- READMEの確認
- TODOの確認
- ソースコードのbuild
- GitHubにpushしてCI(travis等)のtest
- npm versionの更新
- npm publish
test
とにかくtest通ってなければ話になりません。npm run test
READMEの確認
コードをガシガシ書いてテストが通ったら満足してしまいがちですが、公開するならREADMEに新機能の説明を追加するのを忘れてはいけません。
TODOの確認
私は開発中に思いついた機能、メソッド名の変更、バグなどに気づいたらソースコードにTODOを埋め込むようにしています。
エディタにもよりますが、visualstudio-codeでは色んなTODO管理の拡張機能がありますのでそれを使います。
Search results - todo | Visual Studio Code , Visual Studio Marketplace
バージョンアップ公開時にはこれらのTODOを全部消化するか、もしくは別ファイル(たとえばTODO.md)に避難して、コード中のTODOを全部消します。
ソースコードのbuild
testが通ったコードをそのまま公開する場合もあると思いますが、development
、production
のように開発用と本番用を分けている場合は本番用のビルドを忘れないように。
当然リビルドしたコードがtestを通るかの確認も。
GitHubにpushしてCI(travis等)のtest
私は「GitHubはベータ版も公開する場所」と考えています。
npmにpublishしたモジュールは以下のコマンドでインストールできます。
npm install <パッケージ名>
しかし以下のコマンドを使うと、GitHubから直接インストールできます。
npm install <GitHubのユーザー名>/<リポジトリ名>
とはいえ後者はあまり使われていないと思います。
あくまでも「npmのmoduleはnpmjs.comから取得する」というのが基本です。
- npmはStableバージョンのみ置く
- GitHubはStableもBetaも置く
と私は考えています。
なのでnpm publish
する前に必ずtravisでtestを通ることを確認します。
package.jsonに依存するmoduleをdependenciesに書き忘れていた(install時に --saveオプションを忘れていた)場合など、localではtestを通っても本番では失敗するかもしれません。なので必ずCIで確認を。
npm versionの更新
npm publish
を実行したときに、package.jsonのversionが更新されていないとエラーになります。
これを防ぐためにversionを更新するためのコマンドがあります。
> npm version major
# v1.0.0 から v2.0.0 へ変更
> npm version minor
# v1.0.0 から v1.1.0 へ変更
>npm version patch
# v1.0.0 から v1.0.1 へ変更
これらのコマンドを実行するとgit tag <version>
とgit commit
まで実行してくれます。
npm publish
ここまでOKならいよいよnpm publish
します。おつかれさまでした。