npm - 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"
解决方案
如果传输文件到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
推荐阅读
- machine-learning - Grover算法在机器学习中的应用
- python - Python Matrix 正确检查对角线和水平线以赢得比赛
- java - 您如何从 Jtextfield 中的用户那里获得 2 个输入?
- python - 比较某个字符串和字符串列表的某个出现
- javascript - 赛普拉斯如果比较对象
- php - 致命错误:未捕获错误:调用 /home/customer/www/monkinsider.com/public_html/wp-blog-header.php:16 中未定义的函数 wp() 堆栈跟踪:
- node.js - 在 gremlin-node.js/gremlin-server 中设置属性不起作用
- java - 为什么方法 add() 不会增加数组的大小?
- github - 在 terraform-gcp-github 项目中将凭证存储在哪里?
- reactjs - 如何在反应 useLayoutEffect 中去抖动?