自动下载 package.json 文件中列出的 npm 包

Automatically downloading npm packages listed in package.json file

我正在创建一个本地存储库,它将包含我在项目中使用的所有包,这样我就可以将这些包安装在无法访问 Internet 的计算机上。我想到了我可以在机器上克隆的存储库和 运行 yarn install 以从本地存储库获得项目中可用的所有包。我怎样才能做到这一点?这里有人问了类似的问题

你的问题中没有足够的信息来完全理解你的情况,但如果你将你的 node_modules 目录提交到存储库,模块将在那里,用户无需 运行 npmyarn 来安装它们。这假设用户将 运行 来自 repo 工作区的代码,并且没有任何模块需要编译步骤或其他可能特定于平台的构建步骤。但如果它们都是普通的 ol' JavaScript 模块,你应该没问题。

如果您想将所有模块作为单独的存储库而不是签入 node_modules,我可以随手想到两种可行的方法。

  1. 让软件包 repo 成为完全安装的 node_modules 目录的签入。然后使该回购成为主回购的 Git submodule,并在主回购中克隆为 node_modules
  2. 使用 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 将从该路径而不是通过网络安装。