【问题标题】:Npm install doesn't download dependency assets from Git LFS on UbuntuNpm install 不会从 Ubuntu 上的 Git LFS 下载依赖项资产
【发布时间】:2019-12-10 12:12:30
【问题描述】:

背景

我有一个项目被分成几个较小的项目,其中一个主项目下载其他项目作为主项目的依赖项。

我正在使用 Gitlab 在私有存储库中托管我的项目,使用部署令牌允许 npm install 下载它们。

使用 package.json 中的以下格式将依赖项添加到主项目:

git+https://name:token@gitlab.com/group/project.git

问题

在 Windows 上,当我对我的主项目进行 git clone 并运行 npm install 时,它会使用 Git LFS 下载所有资产,但在 Ubuntu 上不会下载资产。如果我检查 Git LFS 跟踪的所有文件的内容,我得到的只是 Git LFS 占位符的信息。我在 Windows 和 Ubuntu 上使用相同的命令和软件版本,但结果不同。

我试过了:

  • 在 Windows 和 Ubuntu 上更新到相同版本的 Node(10.16.0) 和 Npm(6.10.2)
  • 更新到最新版本的 Node 和 Npm(由于某些依赖项不适用于 12.x,我不得不坚持使用 Node 的 10.x 版本)
  • 添加指向存储库的 .lfsconfig 文件,如以下问题中所述:https://github.com/npm/npm/issues/11151
  • 将 Git 更新到最新版本(Windows 上为 2.21,Ubuntu 上为 2.22)

当前的解决方法

目前我正在克隆主项目,然后手动将我的依赖项克隆到 node_modules 中,以便它们都是正确的 git 存储库,这样我就可以使用 git lfs pull 了。它可以工作,但它不是应该的工作方式,尤其是因为它在 Windows 上正常工作。

问题

为什么 npm install 对 Ubuntu 和 Windows 的依赖项处理 Git LFS 的方式不同?如何让 npm install 在依赖项上与 Git LFS 一起正常工作,是否有需要更改的设置,例如强制执行 Git LFS 下载?

【问题讨论】:

  • 你试过yarn而不是npm吗?
  • 我假设 git lfs 安装在 Ubuntu 上,我建议也使用公共 repo 进行测试。如果它与私人回购与公共回购有关,这至少会被淘汰
  • @TarunLalwani 刚刚尝试使用yarn,结果相同。软件包已下载,但 LFS 资产未下载。我可能会在某个时候尝试私人与公共测试,但部分原因是无法将其设为公共回购,而且设置起来很烦人,而且我累了,我会推迟它。不过感谢您的建议!
  • 不讨论公共回购作为一个选项,而是更多的调试方向。知道这一点很重要,所以如果你能做到这一点,同时很棒
  • git lfs doc 提到:'git lfs install' - You'll need to run this in your repository directory, once per repository. git-lfs 是否已安装(系统)并且 git-lfs 是否安装在 repo 中?

标签: node.js ubuntu npm npm-install git-lfs


【解决方案1】:

步骤 1. 在您的存储库中,运行以下命令,然后提交生成的 .gitconfig 并推送: $ git config -f .gitconfig lfs.url https://gitlab.com/group/project.git/info/lfs

第 2 步。在您要 npm 安装项目的目录中,运行示例:

$ npm install -S https://gitlab.com/group/project.git

【讨论】:

    猜你喜欢
    • 2017-12-18
    • 2015-07-25
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多