首页 > 解决方案 > Gemfury 在 .gitignore 中时从包中省略文件夹

问题描述

我为 Gemfury 上的主机包工作的公司。我最近加入了 JavaScript 存储库的开发。一切看起来都很标准,但我很快注意到构建工件被检查到源代码控制中。因此,我不假思索地将 dist 文件夹添加到.gitignore.

但是,从那时起,当我们发布时,托管在 Gemfury 上的包不再包含此文件夹。我之前在使用 NPM 包时遇到过这个问题,并且总是能够通过添加一个.npmignore未提及 dist 文件夹的文件来解决它。然而,这在这种情况下并没有帮助,并且在其中添加“文件”区域也没有帮助package.json(那里提到的所有文件都显示在包中,除了 dist 文件夹)。

我不完全确定 Gemfury 是如何创建这个包的。使用 Gemfury 的方式是将源推送到它(将 Gemfury 添加为远程,并且git push fury master),并且 Gemfury 应该会发现它需要进行构建,并声称在此任务中取得了成功:

Initializing build: done.
-----> Building package...
       npm package build detected
       Packing my-project-1.0.0.tgz
-----> Pushing to "my-company" account
       my-project-1.0.0.tgz ... ok
-----> Done!

这就是我能找到的全部内容,我不知道如何让 dist-folder 重新出现。出于显而易见的原因,我不想将其添加回源代码管理。

该存储库使用纱线并包含以下构建脚本package.json

"build": "babel src -d dist -D"

标签: npmgitignoreyarnpkggem-fury

解决方案


如果传输文件到Gemfury的方法是git push,如果Gemfury需要查看dist文件夹,那么git必须知道dist文件夹。

要使 dist 文件夹 .gitignored 不受源代码管理的影响,请在构建时创建一个包含 dist 文件夹的临时分支并推送分支。

#create new branch
git checkout -b Gemfury

#force tracking of dist folder even though it is .gitignored
git add -f dist
git commit -m "included dist folder for Gemfury"

*我不熟悉 Gemfury


推荐阅读