npm config で .npmrc を設定してパッケージインストール時のバージョンを固定したり npm init 時の初期値を変えたりする
npm config set なんたら というコマンドで、~/.npmrc ファイルに初期設定を書き込める。これを使うと、パッケージインストール時に package.json に記載するバージョン番号にチルダやキャレットを付けないようにしたり、npm init した時の著者やライセンスの初期値を変更したり出来る。
パッケージインストール時のバージョンを固定する
通常、パッケージをインストールする時に package.json にチルダやキャレットを付けないようにするには、-E (--save-exact) オプションを付ける。
# devDependencies にバージョン固定で追記する
$ npm install --save-dev --save-exact
# 省略記法だとこのとおり
$ npm i gulp -D -E
チーム開発ではバージョンを固定したいことも多いが、このオプションを結構忘れがちで、チルダやキャレットによる SemVer の範囲指定を軽視しているメンバもいたりして困る。そこで、以下のコマンドで npm install 時に --save-exact オプションを付けたことにするよう設定する。
$ npm config set save-exact=true
これをやると、~/.npmrc というファイルが生成され、そこに追記される。このファイルを管理しておけばチームでも初期値を共有できるというワケだ。
ついでに入れておきたい also=dev
npm outdated・npm update 時に devDependencies も含めるようにするには以下の設定を入れておく。
$ npm config set also=dev
npm init 時の初期値を変える
毎回同じ author を入力したり、ライセンスを MIT に書き換えたりするのが面倒…。と思っていたら、その初期値を設定する方法がちゃんとあった。
$ npm config set init.author.name "お名前"
$ npm config set init.author.email めーる@あどれす.com
$ npm config set init.author.url http://自分のサイト.com/
$ npm config set init.license MIT
これだけでも、 npm init -y でかなり良い感じに package.json が作れるようになったと思う。
npm の動作が遅い気がしたら progress=false
特に Windows の GitBash なんかで感じるのだが、npm install したりした時の進捗表示が動作を遅くする原因になっていることがある。このコンソール出力を無効にするには、progress=false を設定する。
$ npm config set progress=false