npm パッケージの tarball(.tgz ファイル)を直接ダウンロードしたい場面がある。オフライン環境でのインストールや、パッケージの中身を確認したい時などだ。
npm
npm pack <package-name>
# 例:react の tarball をダウンロードnpm pack react# react-18.3.1.tgz が生成されるカレントディレクトリに tarball がダウンロードされる。
yarn
yarn でも npm pack が使える:
npm pack <package-name>
# 例npm pack reactyarn pack は異なる機能(自分のパッケージを tarball 化)なので注意。
pnpm
dist.tarball フィールドから URL を取得:
pnpm info <package-name> dist.tarball
# 例pnpm info react dist.tarball# https://registry.npmjs.org/react/-/react-18.3.1.tgzURL が出力されるので、curl などでダウンロード:
curl -O https://registry.npmjs.org/react/-/react-18.3.1.tgztarball の展開
ダウンロードした tarball は tar コマンドで展開できる:
tar -xzf react-18.3.1.tgz# package/ ディレクトリが生成されるcd package/tarball とは
npm パッケージは npm publish 時に tarball(gzip 圧縮された tar アーカイブ)に変換され、registry にアップロードされる。npm install 時はこの tarball をダウンロードして展開している。
tarball を直接取得することで、以下が可能になる:
- オフライン環境でのパッケージ配布
- パッケージの中身を事前に確認
- 特定バージョンのバックアップ
hsb.horse