興味があったので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を変更する場合は「とりあえずスコープをつける」などと覚えるだけも良いのかもしれない。