使用npm,我怎样才能下载一个包作为一个压缩包与包中包含的所有依赖项
我想要做的就是下载具有所有依赖项的软件包,以便将它们转移到另一台没有互联网连接的计算机上,并将其安装在那里。
所以情况是:
-
下载包(zip / tarball /任何文件),而不安装它。
-
包含在该下载的文件中将是所有的依赖关系(正确的版本,它是依赖关系的依赖)。
-
将文件传输到其他计算机。
-
运行
npm install
到文件位置(可选-g
重要)。 -
包与依赖关系一起安装。
-
快乐的露营者。
我觉得必须有一个npm命令来下载和打包(创build)这样的文件。
我试过寻找这个解决scheme无济于事。
这是我第一次使用节点,所以我很害怕我没有正确地研究它,因为缺乏node / npm lingo的知识。
我只是用Jack Gill的这个要点来完成你所描述的事情 – 把一个软件包和所有的依赖捆绑在一起。 基本上,脚本所做的是重写一个模块的package.json
文件,将其所有的dependencies
移动到bundleDependencies
,然后打包整个事物。 上传生成的tarball到你的服务器,然后npm install
它。 作品一种享受。
只需在软件包目录中运行npm install
并将其全部归档即可。 假设没有非npm的要求,你需要肉,两台机器运行相同版本的节点,没有什么需要做的。 所有下载的依赖项都将安装在./node_modules
。 但是对整个包进行归档通常是个好主意,因为开发者可能已经实现了一些额外的安装例程。
-
将软件包下载到带有互联网的机器上。
-
确保你的应用程序包在其根目录下有一个
package.json
文件,其中列出了你所有的依赖项。 你可以通过执行npm install dependency-name --save
来使npm保存你的package.json
的npm install dependency-name --save
。--save
标志将导致npm将依赖项写入应用程序的package.json
文件(如果有的话)。 如果没有,那么它什么都不会做。 你也可以指示npm为你的应用程序创build一个package.json
文件,如果你只需要在你的应用程序目录下运行npm init
的话。 -
从应用程序目录中运行
npm install
。 这将创buildnode_modules
目录并安装应用程序的package.json
文件中列出的所有依赖项。 -
现在将其目录中的一个
node_modules
目录与安装的所有依赖关系相node_modules
。 将zip存档传输到另一台机器。 -
只需将档案打包到最终目的地,就完成了。 该应用程序现在是它需要的位置,并且已经安装了依赖关系。
-
现在只需运行带有
node app.js
的应用程序,用任何应用程序主入口点文件的名称replace“app.js”即可。