当 Gemfury 在 .gitignore 中时,它会从包中省略文件夹

Gemfury omits folder from package when it is in .gitignore

我工作的公司在 Gemfury 上托管软件包。我最近加入了 JavaScript 存储库的开发工作。一切看起来都很标准,但我很快注意到构建工件正在被检入源代码管理。因此,我想都没想就将 dist 文件夹添加到 .gitignore

但是,从那时起,当我们发布时,托管在 Gemfury 上的包不再包含此文件夹。我之前在使用 NPM 包时遇到过这个问题,并且总是能够通过添加一个 .npmignore 文件来解决它,其中没有提到 dist 文件夹。然而,这在这种情况下无济于事,在 package.json 中添加 "files" 区域也无济于事(除 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 文件夹重新出现。出于显而易见的原因,我不想将它添加回源代码管理。

存储库使用 yarn 并在 package.json 中包含以下构建脚本:

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

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

要保持​​ dist 文件夹。git从源代码管理中忽略,请在构建时创建一个包含 dist 文件夹的临时分支,然后推送 this 分支。

#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"

*I'm not familiar with Gemfury