使用npm,我怎样才能下载一个包作为一个压缩包与包中包含的所有依赖项

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

所以情况是:

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

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

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

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

  5. 包与依赖关系一起安装。

  6. 快乐的露营者。

我觉得必须有一个npm命令来下载和打包(创build)这样的文件。

我试过寻找这个解决scheme无济于事。

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

我只是用Jack Gill的这个要点来完成你所描述的事情 – 把一个软件包所有的依赖捆绑在一起。 基本上,脚本所做的是重写一个模块的package.json文件,将其所有的dependencies移动到bundleDependencies ,然后打包整个事物。 上传生成的tarball到你的服务器,然后npm install它。 作品一种享受。

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

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

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

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

  4. 现在将其目录中的一个node_modules目录与安装的所有依赖关系相node_modules 。 将zip存档传输到另一台机器。

  5. 只需将档案打包到最终目的地,就完成了。 该应用程序现在是它需要的位置,并且已经安装了依赖关系。

  6. 现在只需运行带有node app.js的应用程序,用任何应用程序主入口点文件的名称replace“app.js”即可。