1. __mick

    Posted

    __mick
Changes in title
+npm publishする時の注意点
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,93 @@
+npm(nodejsのパッケージマネージャー)には簡単に自作のモジュールをuploadできます。
+
+> [初めてのnpm パッケージ公開 \- Qiita](https://qiita.com/TsutomuNakamura/items/f943e0490d509f128ae2)
+
+こちらの記事で初回アップロードの手順は詳細に書いてあります。
+初回はもちろん、バージョンアップして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](https://marketplace.visualstudio.com/search?term=todo&target=VSCode&category=All%20categories&sortBy=Relevance)
+
+バージョンアップ公開時にはこれらの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を通ることを確認します。
+
+
+> [mick\-whats/ohlc\-node \- Travis CI](https://travis-ci.org/mick-whats/ohlc-node)
+
+package.jsonに依存するmoduleをdependenciesに書き忘れていた(install時に --saveオプションを忘れていた)場合など、localではtestを通っても本番では失敗するかもしれません。なので必ずCIで確認を。
+
+
+## npm versionの更新
+`npm publish`を実行したときに、package.jsonのversionが更新されていないとエラーになります。
+これを防ぐためにversionを更新するためのコマンドがあります。
+
+```shell
+> 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`します。おつかれさまでした。