bunで自作のプライベートパッケージをインストールする
フロントとAPIのリポジトリを分けて開発しているので、型情報が共有しづらい。
そこで、APIをプライベートパッケージとしてnpmに公開して、フロントにimportする。
npmでプライベートに公開するには、$7/ユーザー/月を支払う必要があるみたい。
公開したいAPIのpackage.jsonに以下の項目を入れる。
{
"name": "@(組織名)/(パッケージの名前)",
"version": "1.0.0",
"main": "src/index.ts",
"types": "src/db/types.d.ts",
...,
"publishConfig": {
"access": "restricted"
}
}
個人としても公開できるが、今回は組織で公開。
npmのコンソールで簡単に作成できる。
publishConfigで非公開であることを明記する。そして、
npm publish
とすれば、npmがプライベートに公開される。
そして使いたい方で、.npmrcファイルをルートに作成して、
//npm.pkg.github.com/:_authToken=${NPM_TOKEN}
と記述。
環境変数にNPM_TOKENをセット。Vercelだとコンソールでインストールしたい環境にセットするだけ。
bunの1.1.18からこの.npmrcが使えるようになっている点に注意。
別の環境で同じようにpublishしようとすると、
Beginning October 4, 2021, all connections to the npm registry - including for package installation - must use TLS 1.2 or higher. You are currently using plaintext http to connect. Please visit the GitHub blog for more information: https://github.blog/2021-08-23-npm-registry-deprecating-tls-1-0-tls-1-1/
なる文言が出てきて、npmに認証を通せない。http通信が弾かれてるようにで、
npm config set registry https://registry.npmjs.org/
とすれば、ブラウザに飛んで認証ができる。