我正在尝试将一个网络应用程序部署到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。
感谢任何帮助,谢谢。
答案 0 :(得分:0)
根据Heroku的相关documentation on Node.js buildpacks:
当应用程序在根目录中有一个package.json文件时,将使用Heroku Node.js buildpack。
根据您的Procfile内容web: cd server && npm run start
,看起来您在服务器目录中运行了npm init,而不是根目录。
我认为如果将package.json
和node_modules
文件夹中的一个目录移至根目录,则会解决buildpack问题。只需确保将Procfile
更改为web: npm run start
,因为它现在就是同一个目录。