Heroku、NodeJs 应用程序、Gulp 和资产修订问题
Heroku, NodeJs App, Gulp, and asset revisioning issues
在将我的 NodeJs 应用程序推送到 Heroku 时,我 运行 遇到了资产修订问题。
我正计划 运行在 post-install 中执行我的 gulp 生产任务。我的任务之一涉及修改文件 (app.js -> app.6789.js)。这意味着我必须清理 index.ejs 中对这些文件的引用。问题在于 Heroku 的临时文件系统(在任何其他 dyno 中,写入的文件对进程不可见,任何写入的文件都将在 dyno 停止或重新启动时被丢弃)。因此,由于我 运行 在文件写入后,rev 很可能会丢失。
一个想法是我可以在本地编译所有这些并向上推 reved index.ejs,但至少对于我的图像,它们会在那里两次,因为我压缩它们等,这增加了我的 slug 大小。 ..
我是否遗漏了有关资产修订/节点/Gulp/Heroku 的内容?我似乎找不到解决方案或其他人发生这种情况的实例,这让我相信我设置错误,这可能是真的。感谢您的帮助!!
我是 Heroku 的 Node.js 平台所有者。
Heroku 将部署分为 'build' 和 'run' 阶段...因此当您 git push
您的应用程序时,您可以使用 package.json postinstall
脚本构建您想要的任何资产,这些资产将一起存储在 'slug' 中。此 slug 中的文件用于之后旋转的所有测功机。
where no files that are written are visible to processes in any other dyno and any files written will be discarded the moment the dyno is stopped or restarted
我认为这可能是让您感到困惑的原因。你的构建运行在一个单一的、特殊的、临时的 dyno 上——然后它创建的文件系统被用于所有后续的、持久的 dyno。因此,您可以在 postinstall
中安全地构建将在多个测功机和重启中使用的资产。
这里有更多信息:
在将我的 NodeJs 应用程序推送到 Heroku 时,我 运行 遇到了资产修订问题。
我正计划 运行在 post-install 中执行我的 gulp 生产任务。我的任务之一涉及修改文件 (app.js -> app.6789.js)。这意味着我必须清理 index.ejs 中对这些文件的引用。问题在于 Heroku 的临时文件系统(在任何其他 dyno 中,写入的文件对进程不可见,任何写入的文件都将在 dyno 停止或重新启动时被丢弃)。因此,由于我 运行 在文件写入后,rev 很可能会丢失。
一个想法是我可以在本地编译所有这些并向上推 reved index.ejs,但至少对于我的图像,它们会在那里两次,因为我压缩它们等,这增加了我的 slug 大小。 ..
我是否遗漏了有关资产修订/节点/Gulp/Heroku 的内容?我似乎找不到解决方案或其他人发生这种情况的实例,这让我相信我设置错误,这可能是真的。感谢您的帮助!!
我是 Heroku 的 Node.js 平台所有者。
Heroku 将部署分为 'build' 和 'run' 阶段...因此当您 git push
您的应用程序时,您可以使用 package.json postinstall
脚本构建您想要的任何资产,这些资产将一起存储在 'slug' 中。此 slug 中的文件用于之后旋转的所有测功机。
where no files that are written are visible to processes in any other dyno and any files written will be discarded the moment the dyno is stopped or restarted
我认为这可能是让您感到困惑的原因。你的构建运行在一个单一的、特殊的、临时的 dyno 上——然后它创建的文件系统被用于所有后续的、持久的 dyno。因此,您可以在 postinstall
中安全地构建将在多个测功机和重启中使用的资产。
这里有更多信息: