ひ孫

犬のこととか書いていきたい

node moduleを作ってnpmに公開するまでの小ネタまとめ

基本的な公開までの手順はこことかこことか

そういうとこに乗ってなかった小ネタがちょこちょあったのでまとめ。

開発前

gitを使いましょう

バージョン管理をしましょうという話は当然ですが

$ npm install gitのurl

というgitのurlでインストール出来たりと色々利点が多いのでgitを使うと捗ります。

npm init しましょう

git initと同じタイミングでやっちゃいましょう。

$ git init
$ npm init

色々聞かれます。答えるとpackage.jsonができます。便利。
手動で作ると色々間違うのでこっちを使いましょう。

開発中

プラグインのインストール時は --saveオプションを使いましょう
$ npm install --save hoge
    • saveをつけると自動的にpackage.jsonに保存されます。便利。

開発中しか使わないテストツールのようなものは--save-devをつけましょう。

公開前

使わなかったプラグインはdependenciesから削りましょう。

開発中はあれないかこれないかと色々プラグインを入れるでしょう。
で、最終的に使わないのとか出てきます。
package.jsonからdependenciesから削りましょう。
dependenciesがいっぱいあって困るのは他の人がinstallした時に重くなるという事ぐらいですがなるべく剤っときましょう。
削ったら

npm prune

をしましょう。自動でnode_modulesから消えてくれます。

他の人がインストールした時のテストをしましょう。

空のディレクトリかなんかを作って

$ npm install 自分のgitのurl

を実行しましょう。
そして他の人が使う時の挙動を確認しましょう。
package.jsonに書いてたmainの指定スクリプトが違ってた!とか無いように。
binをつけたコマンドラインのパッケージなら

$ npm install -g 自分のgitのurl

でもいいですね。
*1

publishはurl指定でやりましょう

package.jsonの中にはrepositoryという項目がありますが

npm publish

を指定した場合にはこれは見てくれるわけではなく、そのカレントディレクトリをパッケージ化してアップするようです。

.npmignoreという.gitignoreと同じようなものもありますが、gitignoreと違ってglobalな設定は出来ない模様なので*2油断するとIDEの設定ファイルなんかがひょいと上がってしまいます。

なので

npm publish 自分のgitのurl

とするのが安全です。これならgitに上がったものだけをそのまま使ってくれます。
gitには上げてるけど更にnpmにだけ上げたくないものだけ.npmignoreに記述してgitにアップするよ良いでしょう*3

*1:これに関してはなんかもうちょっとスマートなテストの仕方がありそうな気もするけどなあ・・・

*2:npm configに[https://npmjs.org/doc/config.html#globalignorefile:title=globalignorefile]というのがあった・・・

*3:ちなみに.npmignoreは空にしとくと.gitignoreを見てくれるらしい。へー。