- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我更改了我的应用程序中的一些文本并部署了新版本
git push heroku master
但每次我推,它都会增加很多。我在这里写下每次部署后的增长。
168.2 KB
37.9 MB
178.6 KB
38.7 MB
187 KB
39.4 MB
194 KB
40.2 MB
205.3 KB
40.9 MB
232.8 KB
41.8 MB
277.9 KB
42.4 MB
286.5 KB
43 MB
如果我选择我的应用程序项目中的所有文件夹(包括我使用 slugignore 和 gitignore 忽略的 public/、tmp/和 log/),总大小仅为 198 KB。
为什么会这样?
最佳答案
可以遵循几个步骤来减小 slug 的大小。
清除构建缓存
Buildpacks 缓存一些内容以加速 future 的构建。但有时,当您的依赖项发生变化时(尤其是当您删除依赖项时),它可能不会从缓存中删除。因此,如果您面临意外的大 slug 大小并且您已从项目中删除了一些依赖项,请先尝试此操作(如果您可以忍受下一次部署时缓慢的构建)。
$ heroku plugins:install heroku-repo
$ heroku repo:purge_cache -a appname
忽略带有 .slugignore 的文件
您的 .sligignore 应该列出存储库中的目录和文件(不会被 .gitignore 忽略)但应用程序在产品上运行不需要这些目录和文件。此类文件的一些示例是测试、文档和设计文件。要从 slug 中删除这些,请在项目的根目录中创建一个 .slugignore。
*.psd
/doc
/test
要检查哪些文件被放入 slug,您也可以输入 herokubash 并检查文件系统。
heroku run bash -a appname
du -sh .[^.]* * | sort -hr
节点模块
这部分特定于包含将所有 JavaScript 代码捆绑到单个脚本的 Assets 管道的应用。如果您使用的是节点服务器,这可能不适用于您。
如果您将 Rails 与 webpacker 一起使用,您可能在 node_modules 中有很多依赖项。但是在 Assets 管道编译资源之后,您可能不需要 node_modules 目录(除非您在运行时运行使用这些模块的自定义节点脚本)。在这种情况下要删除 node_modules 目录,我们可以使用带有 .slug-post-clean 文件的 heroku-buildpack-post-build-clean buildpack。此文件的格式与 .gitignore 或 .sligignore 相同,因此只需从最后的 slug 中列出您想要忽略的目录,它们将被删除。使用 buildpack 需要确保的一件事是,这应该是顺序中的最后一个,否则它将在您的实际 buildpack 运行之前删除文件。
但是如果您使用在运行时访问 node_modules 的自定义节点脚本怎么办?在那种情况下,我们所做的是将这些脚本移动到一个单独的目录,它有自己的 package.json 文件。要将依赖项与根 package.json 的安装一起安装到该目录中,请将安装后脚本添加到根 package.json。这将指示 yarn 将目录更改为您的自定义脚本,并在安装根项目的依赖项后在那里安装依赖项。
"scripts": {
"postinstall": "yarn --cwd lib/custom-node-script"
}
有了这个,即使在生产 Rails 应用程序中使用自定义节点脚本,您也可以安全地删除根 node_modules 目录。
Here is the detailed post解决同样的问题。
关于ruby-on-rails - Heroku Repo Size 和 Slug Size 会随着每次部署而增加。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30167040/
我正在尝试使用 Heroku Scheduler 在已部署的 Heroku 应用程序中调用 HTTP 端点,它基本上以固定速率在 Heroku bash 上运行命令。 当我运行 $ heroku ru
我有一个在 Heroku 上运行的应用程序,其中有一些我想不时更改的设置,并且我想使用 Heroku 配置变量来存储这些设置,以便它们持久存在。 我知道我可以从 Heroku 仪表板或 Heroku
我从模板 reagent-frontend 创建了一个 ClojureScript Reagent 应用程序。如何将生产应用程序部署到 Heroku?在为生产构建后(lein package/lein
我正在尝试在 heroku 上添加信用卡,然后消息显示“无法验证您的卡,请稍后再试或联系您的金融机构寻求帮助” 最佳答案 这是因为您的银行拒绝付款。 检查您是否输入了所有正确的详细信息 查看您银行的最
首先为我的英语感到抱歉,因为它不是我的母语,我不习惯它,它可能很难理解。 我正在尝试将我的 spike 应用程序连接到 heroku 以获取长期葡萄糖数据。 我在没有“部署分支”步骤的情况下成功完成了
Ec2 实例小时按小时计算。如果你只是启动和关闭一个实例,它仍然算作一小时。 Heroku 如何处理这个?按分钟还是按小时? 让我们假设我的应用程序使用超过 750 免费 Dyno 小时限制 最佳答案
好奇 heroku 如何创建应用程序名称。应用程序名称通常是英文单词,例如bloom-peaks 或formal-trail。一家大公司的 IT 部门也是如此。是否有用于名称生成的 unix 库? 最
有没有人在 Heroku 上成功使用过 docsplit?它有许多二进制依赖项。我已经搜索过,但没有找到任何人这样做。教程会很棒,但我真的很好奇其他人是否成功。 最佳答案 我的搜索没有找到任何做过这件
我想将一个应用程序部署到需要能够生成加密安全随机数的 heroku。我可以使用哪些熵源? 最佳答案 你的 Heroku dyno 基本上是一个 Ubuntu 服务器虚拟机,所以你应该可以访问 /dev
Heroku 可以显示自定义维护页面: heroku config:set MAINTENANCE_PAGE_URL=http://some_server/my_page.html 这需要某些网站的存
我正在开始使用 Heroku,并担心它是否会因我犯的错误而向我收费。例如,填充数据库超过 5MB。 那么,有没有办法为 Heroku 或通知系统设置计费限制,以便在我超过价格限制时发送通知? 先感谢您
如何更新我的 Heroku ,我的 Windows 终端显示以下内容: » Warning: heroku update available from 7.47.7 to 7.52.0. 请帮忙
我在免费的 Dyno 上运行基于 NodeJS 的应用程序,连接到 mongohq-MongoDB。我想迁移它以使用爱好 Dyno,这样做的动机不仅是避免 sleep 时间,而且是为了实现更高的 HT
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 9年前关闭。 Improve this q
如何将我的生产数据库拉到 heroku 上的暂存服务器? 我有两个 Remote ,production 和 staging。 来自documentation看来我想运行 heroku pg:copy
我有一个域example.com,我想将它用于位于example.herokuapp.com 的rails-app,我很困惑如何去做。 Heroku says "Zone apex domains (
我有一个 sinatra 应用程序,其中有一个 yml 文件来设置环境变量,我使用此方法调用它们 module MyConfig def config environment = ENV["RA
根据各种因素,一整天中,我的应用程序的负载可能会出现非常极端的增加。 那时,我想自动增加测功机的数量。 我想增加加载时间。因此,如果加载页面需要X倍的时间,请增加测功力。否则,请往下走。 这样的东西存
我想知道使用heroku工具栏在heroku帐户之间进行切换的最佳方法是什么。 我曾经有一个个人的heroku帐户,它是我所有职业性的heroku应用程序的协作者。问题是当我想进行一些对财务有影响的更
是否可以停止部署到当前正在构建的 Heroku ( git push heroku )? 类似 heroku run stopit! 顺便提一句。成功部署后回滚不是我想要的。 最佳答案 首先,安装He
我是一名优秀的程序员,十分优秀!