如何让heroku检测nodejs buildpack?

时间:2017-07-23 02:05:36

标签: node.js heroku

我正在尝试将一个网络应用程序部署到heroku,但一直收到此错误:

`-----> Failed to detect app matching https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/nodejs.tgz buildpack`

这是我的app文件结构的简化外观:

myProject
|__server
    |__server.js
|__react_component_1
|__react_componet_2
|__styles</p>

快速服务器是服务器目录中的server.js,它将是我的应用程序的输入方式。

似乎这个问题之前已被多次询问过,我已经阅读了所有的答案,这是我尝试过的:

我从根文件夹myProject部署,它没有package.json文件。我已经尝试了npm init来设置package.json,所以heroku可以将app检测为nodejs。我还确保git正在跟踪package.json。我做了一个Procfile:web: cd server && npm run start。我在cli中运行命令来设置buildpack:heroku buildpacks:set heroku/nodejs但到目前为止还没有一个工作。在设置了所有内容后我也尝试了buildpacks:clear,看看heroku是否可以自动检测buildpacks,因为我有一个package.json。

感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

根据Heroku的相关documentation on Node.js buildpacks

  

当应用程序在根目录中有一个package.json文件时,将使用Heroku Node.js buildpack。

根据您的Procfile内容web: cd server && npm run start,看起来您在服务器目录中运行了npm init,而不是根目录。

我认为如果将package.jsonnode_modules文件夹中的一个目录移至根目录,则会解决buildpack问题。只需确保将Procfile更改为web: npm run start,因为它现在就是同一个目录。