logo hsb.horse
← スニペット一覧に戻る

Snippets

npm から tarball をダウンロード

npm pack や pnpm info を使って、npm パッケージの tarball(.tgz)をダウンロードする方法。npm, yarn, pnpm それぞれの方法を紹介。

公開日: 更新日:

npm パッケージの tarball(.tgz ファイル)を直接ダウンロードしたい場面がある。オフライン環境でのインストールや、パッケージの中身を確認したい時などだ。

npm

Terminal window
npm pack <package-name>
# 例:react の tarball をダウンロード
npm pack react
# react-18.3.1.tgz が生成される

カレントディレクトリに tarball がダウンロードされる。

yarn

yarn でも npm pack が使える:

Terminal window
npm pack <package-name>
# 例
npm pack react

yarn pack は異なる機能(自分のパッケージを tarball 化)なので注意。

pnpm

dist.tarball フィールドから URL を取得:

Terminal window
pnpm info <package-name> dist.tarball
# 例
pnpm info react dist.tarball
# https://registry.npmjs.org/react/-/react-18.3.1.tgz

URL が出力されるので、curl などでダウンロード:

Terminal window
curl -O https://registry.npmjs.org/react/-/react-18.3.1.tgz

tarball の展開

ダウンロードした tarball は tar コマンドで展開できる:

Terminal window
tar -xzf react-18.3.1.tgz
# package/ ディレクトリが生成される
cd package/

tarball とは

npm パッケージは npm publish 時に tarball(gzip 圧縮された tar アーカイブ)に変換され、registry にアップロードされる。npm install 時はこの tarball をダウンロードして展開している。

tarball を直接取得することで、以下が可能になる:

  • オフライン環境でのパッケージ配布
  • パッケージの中身を事前に確認
  • 特定バージョンのバックアップ

実務メモ

このスニペットは、npm、yarn、pnpm の周辺で同じ操作や判定を毎回書きたくない時に向く。小さな補助として切り出しておくと、呼び出し側では意図だけを追いやすい。

逆に、分岐や前提条件が増えて責務が膨らむなら、1本のスニペットに詰め込まない方がよい。手順と helper を分けるか、役割ごとに切り出す方が保守しやすい。