Npm install不会从Ubuntu上的Git LFS下载依赖项资产

时间:2019-08-01 20:47:38

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

背景

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

我正在使用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配合使用,我不得不坚持使用10.x版的节点)
  • 如以下问题所述,添加指向仓库的.lfsconfig文件:https://github.com/npm/npm/issues/11151
  • 将Git更新到最新版本(Windows上为2.21,Ubuntu上为2.22)

当前解决方法

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

问题

为什么npm install对Ubuntu和Windows的依赖关系对Git LFS的处理不同?我如何获得npm install才能在依赖项上与Git LFS一起正常使用,是否需要在某处进行设置更改为例如强制执行Git LFS下载?

1 个答案:

答案 0 :(得分:0)

步骤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