使用 npm 如何将包下载为 zip,包中包含所有依赖项

Using npm how can I download a package as a zip with all of its dependencies included in the package

我想做的是下载包及其所有依赖项,以便将它们传输到另一台没有互联网连接的计算机并在那里安装。

所以场景是:

  1. 下载包(到 zip/tarball/whatever 文件)而不安装。

  2. 包含在该下载文件中的是它的所有依赖项(正确的版本,以及它的依赖项的依赖项)。

  3. 将文件传输到其他计算机。

  4. 运行 npm install 到文件位置(可选 -g 重要)。

  5. 安装了依赖包。

  6. 快乐的露营者。

我觉得必须有一个 npm 命令才能以这种方式下载和打包(创建)文件。

我试过为此寻找解决方案,但无济于事。

这是我第一次使用节点,所以我担心我没有正确研究它,因为缺乏 node/npm 行话的知识。

只需 运行 npm install 在包目录中并将其全部存档。

假设您不需要满足任何非 npm 要求,并且两台机器都运行使用相同版本的节点,则无需执行更多操作。所有下载的依赖项都将安装在 ./node_modules 中。但归档整个包通常是个好主意,因为开发人员可能已经实施了一些额外的设置例程。

  1. 将软件包下载到有互联网的机器上。

  2. 确保您的应用程序包在其根目录下有一个 package.json 文件,其中列出了您的所有依赖项。您可以通过执行 npm install dependency-name --save 让 npm 将您的依赖项保存在 package.json 中。 --save 标志将导致 npm 将依赖项写入应用程序的 package.json 文件(如果有的话)。如果它没有,那么它将什么都不做。如果需要,您还可以指示 npm 为您的应用程序创建一个 package.json 文件,只需从您的应用程序目录中 运行ning npm init 即可。

  3. 运行 npm install 从应用程序目录中。这将创建 node_modules 目录并安装应用的 package.json 文件中列出的所有依赖项。

  4. 压缩目录,现在它有一个 node_modules 目录,其中安装了所有依赖项。将 zip 存档传输到另一台机器。

  5. 只需将存档解压缩到其最终目的地即可。该应用程序现在位于它需要的位置并且已经安装了依赖项。

  6. 现在只需 运行 带有 node app.js 的应用程序,将 "app.js" 替换为应用程序主入口点文件的任何名称。

我只是使用 this gist by Jack Gill 来完全按照您的描述进行操作 -- 捆绑一个包, 它的所有依赖项。脚本所做的基本上是重写模块的 package.json 文件以将其所有 dependencies 移动到 bundleDependencies,然后打包整个文件。将生成的 tarball 上传到您的服务器,然后 npm install 它。效果不错。

您可以使用单个命令下载包及其所有依赖项及其依赖项。请参考此 link npm-package-downloader