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

时间:2015-04-21 09:19:28

标签: node.js package npm

我要做的是下载包含所有依赖项的软件包,以便将它们转移到另一台没有Internet连接的计算机并在那里安装它。

所以场景将是:

  1. 下载包(至zip / tarball /任意文件)而不安装它。

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

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

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

  5. 使用依赖项安装软件包。

  6. 快乐的露营者。

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

    我一直试图寻找解决方案,但无济于事。

    这是我第一次使用节点,所以我很害怕我没有正确研究它,因为缺乏节点/ npm术语的知识。

3 个答案:

答案 0 :(得分:2)

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

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

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

  4. 现在压缩目录,其中包含node_modules目录,并安装了所有依赖项。将zip存档转移到另一台计算机。

  5. 只需将存档打包到最终目的地即可完成。该应用程序现在需要它,并且已经安装了依赖项。

  6. 现在只需使用node app.js运行应用程序,将“app.js”替换为应用程序主入口点文件的名称。

答案 1 :(得分:1)

只需在包目录中运行npm install并将其全部存档。假设没有非npm要求你需要肉,两台机器都运行相同版本的节点,不需要做任何事情。所有下载的依赖项都将安装在./node_modules中。但是归档整个包通常是个好主意,因为开发人员可能已经实现了一些额外的设置例程。

答案 2 :(得分:1)

我只是使用this gist by Jack Gill来完成你所描述的内容 - 将一个包,所有依赖项捆绑在一起。基本上,脚本的作用是重新编写模块的package.json文件,将其所有dependencies移动到bundleDependencies,然后打包整个文件。将生成的tarball上传到您的服务器,然后npm install。是一种享受。