Download a package from npm as a tar (not installing it to a module)

Solution 1:

You can use npm view to get the URL to the registry's tarball (in this example for the module level):

$ npm view level dist.tarball

And to download tarball, you can use npm pack:

$ npm pack level

Solution 2:

Just run the command

npm view [package name] dist.tarball

It will return a tar url.

Solution 3:

Running npm pack PACKAGE_NAME will download a tarball of any package on npm.

To extract it, just run tar -xzf DOWNLOADED_FILE.tgz

Example:

npm pack react

then extract:

tar -xzf react-16.6.3.tgz

Solution 4:

If you need to get the tarball without having npm installed, you can fetch the package information using curl and use jq to get the right information from the JSON:

curl https://registry.npmjs.org/PACKAGE-NAME/ \
    | jq '.versions[."dist-tags".latest].dist.tarball'

This is for instance useful if you're building a Docker container that requires one npm package, and don't want to install npm just for that.