.npmrcの設定はハイフン(-)かドット(.)か
デフォルトはハイフンです。なのになぜかドットでも npm init
したときにはきちんと参照されます。
そのためかドットを使った .npmrc
の紹介記事が散見されます。
<追記>
npm 公式でも ハイフンとドットが混在していました。統一したほうが良いのでは…?
</追記>
$ # npm config set init-license MIT ホントはこっち $ npm config set init.license MIT
# .npmrc # init-license=MIT init.license=MIT
ハイフン・ドット両方ある場合には後のものが優先されます。
ドットを使った場合の問題点
npm init
以外では両者は別のものとして扱われます。
以下はドットのみ設定した場合です。
ターミナルからは npm config get
で設定を確認できます。
$ npm config get init.license MIT $ npm config get init-license ISC
ハイフンを使った init-license
の方はデフォルトの設定が参照されていることが分かります。
また、.npmrc
の設定はスクリプトから読み込むこともできますが、
こちらもドットがハイフンに変換されずにそのままになります。
.npmrc の読み込み方は
~/.npm-init.js
からはconfig.sources
- 他のスクリプトからは
require("npm").load((err, npm)=> console.log(npm.config.sources))
で出力結果はこのようになります。
config.sources = ... user: { ... data: { 'init.license': 'MIT', // ドットで設定したよ 'init-version': '0.0.1', // ハイフンで設定したよ color: 'always', ... } }
そのためユーザー設定を読み取る際にはドットとハイフン両方対応する必要があります。
実際に問題になるケースは限られると思いますが、 わざわざドットを使う理由がないのでハイフンを使いましょう。