npm initでauthorやlicenseなどの初期値を指定する

JavaScript Advent Calendar 2015の2日目。小ネタです。

npm initするときにauthorとかlicenseとか毎回同じこと入力するの面倒だったりしません?実はいくつかの項目は初期値を設定できるのだけど、ググってもあまり日本語情報が無いようなので共有。

設定方法は.npmrcで以下のように指定すればOK。

init-author-name=Teppei Sato
init-author-email=teppeis@gmail.com

.npmrcの場所は以下の順で優先される。(詳細は公式を参照)

  1. per-project config file (/path/to/my/project/.npmrc)
  2. per-user config file (~/.npmrc)
  3. global config file ($PREFIX/etc/npmrc)
  4. npm builtin config file (/path/to/npm/npmrc)

今回は全プロジェクトに指定したいケースなので、ホームディレクトリの~/.npmrcに書いておくのが良いと思う。

指定できる設定値は公式docを参照。init-で始まる項目をリストアップしてみる。

init-author-name, init-author-email

名前とメールアドレス。これはたぶんみんな便利になるはず。

init-author-url

自分はURL書いてないので使ってない。

init-license

デフォルトのライセンスはISCなので、自分はMITを初期値に指定してる。

init-version

デフォルトが1.0.0の強気設定なので、0.0.1から始めたい弱気な人はどうぞ。

init-module

これを指定するとnpm initが呼ばれたときにロードするJSファイルを置き換えることができる。よりカスタマイズしたい上級者向け。

完全に置き換わるので、いつもの対話的にパッケージ名等を聞かれる処理はいっさいなくなっちゃうから必要なら自分でゼロから書かなければいけない。実はinit-moduleの初期値は~/.npm-init.jsになっていて、ファイルがあれば発動するようになっているので、init-module自体を設定しなくてもファイルを置けば利用可能。

npm initの実体は npm/init-package-json パッケージで、そのうち default-input.js がデフォルトの対話式スクリプトの実体なので、これをベースに改造するのが良いかも。


以上です。

あとnpm initとは関係ないnpmrcの小ネタとして、tag-version-prefix を変更するとnpm versionで"v1.0.1"になるのを"1.0.1"にできるようになるよ。

Enjoy happy npm life!