【问题标题】:Heroku node deployment doesn't respect file name changesHeroku 节点部署不考虑文件名更改
【发布时间】:2017-09-17 01:31:45
【问题描述】:

我将其中一条路由的文件名从 authroutes 更改为 authRoutes。当我提交更改并部署到 heroku 时,构建失败,因为它仍在寻找 authroutes。

2017-09-16T15:57:57.744695+00:00 app[web.1]: Error: Cannot find module './routes/authRoutes.js'

对该文件的唯一引用是在我的 index.js 文件中,通过:

require('./routes/authRoutes.js')(app);

我在提交时在 index.js 文件中进行了更改。我尝试使用 heroku-repo 插件清除构建缓存以及对文件本身进行更改。如果我将文件名以及 index.js 中的引用切换回来,一切都会顺利进行。我尝试使用 heroku bash 手动更改文件,但它只是在构建过程完成后切换回全小写版本。

谢谢!

【问题讨论】:

  • 奇怪的是缓存/回购刷新不起作用,并且构建不会看到内容更改的文件的新哈希值。所以尝试在你的应用程序中更改路由器的文件名。或删除/添加包含路由器的整个文件以完成真正的缓存/推送力
  • 抱歉,我不太确定我是否理解这一点。您的意思是将路由引入 index.js 而根本不将其分开?然后也许在单独的提交中用正确的文件名放回去?我可能会尝试旋转一个全新的 heroku dyno。
  • 通过“drop / add” ... rm 与您的路由器的文件... 做一个推送... 添加以前 rm'd 路由器文件... 做另一个推送
  • 在两个单独的提交上删除和添加路由器文件解决了我的问题。您应该将其作为答案而不是评论提交!

标签: javascript node.js express heroku


【解决方案1】:

buildpack 可能正在对 repo 进行哈希比较,这需要比单个字节更改 Case 更大或更重要的更改。

如果是这样,为什么不尝试在 2 个连续的 git push 操作中删除/添加整个文件?

  1. 从项目中获取您的路由器文件

  2. git push heroku master(节点启动可能会失败,但那又怎样)

  3. 添加您的“新”路由器文件,其中包含 repo 哈希无法识别的更改

    1. git push heroku master 用新版路由器

这应该足以欺骗节点项目的 buildpack 散列器以强制通过您的更改。

【讨论】:

  • 实际上,将文件全部删除确实强制进行了我需要的更改。随后的提交,我用正确的文件名重新添加了它。
猜你喜欢
  • 1970-01-01
  • 2017-05-16
  • 2020-07-02
  • 2019-08-15
  • 1970-01-01
  • 2010-10-27
  • 2022-07-01
  • 2016-03-28
  • 2016-10-12
相关资源
最近更新 更多