自动下载 package.json 文件中列出的 npm 包
Automatically downloading npm packages listed in package.json file
我正在创建一个本地存储库,它将包含我在项目中使用的所有包,这样我就可以将这些包安装在无法访问 Internet 的计算机上。我想到了我可以在机器上克隆的存储库和 运行 yarn install
以从本地存储库获得项目中可用的所有包。我怎样才能做到这一点?这里有人问了类似的问题
你的问题中没有足够的信息来完全理解你的情况,但如果你将你的 node_modules
目录提交到存储库,模块将在那里,用户无需 运行 npm
或 yarn
来安装它们。这假设用户将 运行 来自 repo 工作区的代码,并且没有任何模块需要编译步骤或其他可能特定于平台的构建步骤。但如果它们都是普通的 ol' JavaScript 模块,你应该没问题。
如果您想将所有模块作为单独的存储库而不是签入 node_modules
,我可以随手想到两种可行的方法。
- 让软件包 repo 成为完全安装的
node_modules
目录的签入。然后使该回购成为主回购的 Git submodule,并在主回购中克隆为 node_modules
。
- 使用
npm pack
为您需要的每个包创建 .tgz 文件。将这些文件存储在包存储库中。将该 repo 克隆到目标机器上的已知路径中。通过路径名安装主仓库。例如,如果您 运行 npm install /var/packages/foo-1.0.0.tgz
,它会在您的 package.json
中添加一行,看起来像这样:"foo": "file:../../../var/packages/foo-1.0.0.tgz"
。在这种情况下,npm install
将从该路径而不是通过网络安装。
我正在创建一个本地存储库,它将包含我在项目中使用的所有包,这样我就可以将这些包安装在无法访问 Internet 的计算机上。我想到了我可以在机器上克隆的存储库和 运行 yarn install
以从本地存储库获得项目中可用的所有包。我怎样才能做到这一点?这里有人问了类似的问题
你的问题中没有足够的信息来完全理解你的情况,但如果你将你的 node_modules
目录提交到存储库,模块将在那里,用户无需 运行 npm
或 yarn
来安装它们。这假设用户将 运行 来自 repo 工作区的代码,并且没有任何模块需要编译步骤或其他可能特定于平台的构建步骤。但如果它们都是普通的 ol' JavaScript 模块,你应该没问题。
如果您想将所有模块作为单独的存储库而不是签入 node_modules
,我可以随手想到两种可行的方法。
- 让软件包 repo 成为完全安装的
node_modules
目录的签入。然后使该回购成为主回购的 Git submodule,并在主回购中克隆为node_modules
。 - 使用
npm pack
为您需要的每个包创建 .tgz 文件。将这些文件存储在包存储库中。将该 repo 克隆到目标机器上的已知路径中。通过路径名安装主仓库。例如,如果您 运行npm install /var/packages/foo-1.0.0.tgz
,它会在您的package.json
中添加一行,看起来像这样:"foo": "file:../../../var/packages/foo-1.0.0.tgz"
。在这种情况下,npm install
将从该路径而不是通过网络安装。