GitHub Packagesと.npmrcファイル

興味があったのでGitHub Packagesを試してみている。node-css-mqpackerを復活させて、公開するところまではできた。ヘルプの通りでうまくいったが、.npmrcファイルで気になるところがあったので、メモを残しておく。

公開時

オーナーとして公開する場合.npmrcファイルを編集してregistryを編集しろとなっている。もちろんこれで公開できる(できた)けれど、npmのauditコマンドが動かなくなってしまった。

$ npm audit
npm ERR! code ENOAUDIT
npm ERR! audit Your configured registry (https://npm.pkg.github.com/hail2u) does not support audit requests.
npm ERR! audit The server said: 404 page not found
npm ERR! audit

それはそうかというエラーだが、これは困る。後述のスコープで絞る方法で設定しても良いようだが、ヘルプに併記されているpackage.jsonファイルでpublishConfigフィールドを使う方法でもうまくいく。

{
	"name": "@hail2u/css-mqpacker",
	"version": "8.0.1",
	"repository": {
		"type": "git",
		"url": "git://github.com/hail2u/node-css-mqpacker.git"
	},
	"publishConfig": {
		"registry": "https://npm.pkg.github.com/"
	}
}

.npmrcファイルを編集する場合と違い、registryフィールドの値にはオーナー名まで含めなくていい。こちらは「公開設定」というそのものズバリのフィールドで設定することになるので、わかりやすいと感じた。他に.npmrcファイルを使う必要がない場合に、ファイルが増えないという点でもやりやすい。

インストール時

ユーザーとしてインストールする場合も、.npmrcファイルを編集してregistryを設定しろとなっている。しかし、これだと影響範囲が大きすぎるような気がする。npmのauditコマンドが動かないのも同じだ。

@hail2u:registry=https://npm.pkg.github.com/

このようにスコープで絞って設定してやっても大丈夫だった。これならプリフィックスで@hail2uを持つ依存パッケージのみがGitHub Packagesを見に行くだろう。


ローカルの.npmrcファイルを使ったことがなかったので、基本的な知識がなく混乱した。registryを変更する場合は「とりあえずスコープをつける」などと覚えるだけも良いのかもしれない。