packall

Introduction

Bundle npm packages and their complete dependency closure into tarballs you can carry across an air gap.

packall downloads a package and everything it depends on, and writes the lot as tarballs you can carry onto a restricted network and import into a registry there.

packall react@19.2.8

That produces react@19.2.8.tgz, laid out exactly the way a registry serves it — so importing needs no path rewriting. Ask for something with a dependency tree and the whole tree comes with it:

packall react-dom@19.2.8

react-dom@19.2.8.tgz holds react-dom, react and scheduler.

When you need this

You are behind a firewall, an air gap, or a review process, and npm install cannot reach the internet. Somebody has to get the packages in.

npm pack gives you one package without its dependencies. Downloading tarballs by hand means walking the dependency graph yourself. packall walks it for you, verifies every checksum, and records what it did in a manifest a security review can read.

Install

npm i -g @packall/cli

This installs two names for the same tool: packall, and npmb as a shorter alias. The docs use packall throughout.

To run it once without installing:

npx @packall/cli react@19.2.8

Try it without installing anything

/run is a real terminal running the real CLI, in a browser tab. Paste any command from these docs into it. Nothing is installed, nothing is uploaded, and the bundles it produces are downloadable.

It is the fastest way to see what a command does before you commit to it.

Where to go next

On this page