【问题标题】:Heroku, NodeJs App, Gulp, and asset revisioning issuesHeroku、NodeJs App、Gulp 和资产修订问题
【发布时间】:2015-04-22 23:59:54
【问题描述】:

在将我的 NodeJs 应用程序推送到 Heroku 时,我遇到了资产修订问题。

我计划在安装后运行我的 gulp 生产任务。我的任务之一是修改文件(app.js -> app.6789.js)。这意味着我必须在我的 index.ejs 中清理对这些文件的引用。问题在于 Heroku 的临时文件系统(其中写入的文件对任何其他 dyno 中的进程都不可见,并且在停止或重新启动 dyno 时,写入的任何文件都将被丢弃)。因此,由于我在写入文件后运行此程序,因此很有可能会丢失 rev。

一个想法是我可以在本地编译所有这些并推高修订的 index.ejs,但至少对于我的图像,它们会在那里两次,因为我压缩它们等,这增加了我的 slug 大小......

我是否遗漏了有关资产修订/Node/Gulp/Heroku 的内容?我似乎找不到其他人发生这种情况的解决方案或实例,这让我相信我设置错了,这可能是真的。感谢您的帮助!

【问题讨论】:

    标签: node.js heroku gulp


    【解决方案1】:

    我是 Heroku 的 Node.js 平台所有者。

    Heroku 将部署分为“构建”和“运行”阶段...所以当您 git push 您的应用程序时,您可以使用 package.json postinstall 脚本来构建您想要的任何资产,这将是一起存储在“蛞蝓”中。此 slug 中的文件用于之后启动的所有测功机。

    任何其他测功机中的进程都看不到写入的文件,并且在测功机停止或重新启动时,写入的任何文件都将被丢弃

    我认为这可能是让你绊倒的原因。您的构建在单个特殊的临时测功机上运行 - 然后它创建的文件系统将用于所有后续的持久测功机。因此,您可以安全地在 postinstall 中构建资产,这些资产将用于多个测功机和重启。

    这里有更多信息:

    【讨论】:

    • 谢谢你这回答了我的问题!那段文字让我感到困惑,您的解释/链接清除了这一点。
    猜你喜欢
    • 2015-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-12
    • 1970-01-01
    相关资源
    最近更新 更多