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