gpt4 book ai didi

node.js - 使用 nodejs 的 heroku 部署失败

转载 作者:搜寻专家 更新时间:2023-10-31 23:08:43 25 4
gpt4 key购买 nike

我正在尝试将本地文件推送到 heroku 并出现以下错误。我的代码在 github

有人可以帮助我吗?谢谢

$ heroku buildpacks:set heroku/nodejs
Buildpack set. Next release on haz will use heroku/nodejs.
Run git push heroku master to create a new release using this buildpack.
$ git push heroku master
Counting objects: 693, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (500/500), done.
Writing objects: 100% (693/693), 63.10 MiB | 2.54 MiB/s, done.
Total 693 (delta 220), reused 639 (delta 171)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Using set buildpack heroku/nodejs
remote:
remote: ! Push rejected, failed to detect set buildpack heroku/nodejs
remote: More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure
remote:
remote: Verifying deploy....
remote:
remote: ! Push rejected to haz.
remote:
To https://git.heroku.com/haz.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/haz.git'
$

对于 package.json

{
"name": "haz",
"version": "1.0.0",
"description": "Hazzir: An Ionic project",
"private": "true",
"dependencies": {
"express": "^4.13.3"
},
"main": "serve.js",
"scripts": {
"start": "node serve.js",
"postinstall": "bower install && grunt build",
"test": "echo \"Error: no test specified\" && exit 1"
},
"engines": {
"node": "4.1.2",
"npm": "3.4.0"
},

"keywords": [
"Haz",
"product"
],
"author": "Asim Khan",
"license": "ISC",
"bugs": {
"url": "https://github.com/asimkh/apps/issues"
},
"homepage": "https://github.com/asimkh/apps#readme"
}

我在本地测试,应用程序使用 express 在端口 5000 上运行

var express = require('express'),
app = express();

app.use(express.static('www'));

// CORS (Cross-Origin Resource Sharing) headers to support Cross-site HTTP requests
app.all('*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
next();
});

// API Routes
// app.get('/blah', routeHandler);

app.set('port', process.env.PORT || 5000);

app.listen(app.get('port'), function () {
console.log('Express server listening on port ' + app.get('port'));
});

最佳答案

我在这里看到了一些问题

1) 你需要一个procfile - https://devcenter.heroku.com/articles/getting-started-with-nodejs#define-a-procfile

2)您没有在 package.json 中指定引擎

"engines": {
"node": "0.10.x"
},

请参阅此处- https://discussion.heroku.com/t/the-official-node-js-buildpack-is-going-on-a-diet/100

3) 你已经将你的 node_modules 目录提交给了 git。您应该能够使用 npm install 下载软件包(这就是您的 packages.json 文件的用途)

删除这个目录,并将删除提交给git。然后,创建一个 .gitignore 文件。将以下行添加到您的 .gitignore 文件中:

node_modules

将此 .gitignore 文件提交到您的存储库。

Git 现在将忽略您的 node_modules_ 目录

关于node.js - 使用 nodejs 的 heroku 部署失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33778552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com