以 tar 形式从 npm 下载一个包(不将其安装到模块中)

是否有一些 URL,我可以从 npm 下载给定的包(作为一个 tarball 或其他东西) ?我需要最初上传到 npm 的确切文件。

例如,使用 npm install得到一个不同的、生成的 package.json。

41753 次浏览

是的,您可以通过 npm install <git remote URL>将完整的存储库下载到 node_modules中。但是,这将直接来自存储库的主机,而不是通过 npm。有关更多信息,请参见 npm install文件

您可以使用 npm view获取注册中心 tarball 的 URL (在本例中是模块 level) :

$ npm view level dist.tarball

要下载 tarball,可以使用 npm pack:

$ npm pack level

只要运行命令

npm view [package name] dist.tarball

它将返回一个 tar url。

如果需要获取 tarball 没有安装 npm,可以使用 curl获取包信息,并使用 jq从 JSON 获取正确的信息:

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

例如,如果您正在构建一个需要一个 npm 包的 Docker 容器,并且不希望仅仅为此安装 npm,那么这就非常有用。

运行 npm pack PACKAGE_NAME将在 npm 上下载任何包的 tarball。

要提取它,只需运行 tar -xzf DOWNLOADED_FILE.tgz

例如:

npm pack react

然后提取:

tar -xzf react-16.6.3.tgz