22

以前在heroku上启动节点应用程序时有人遇到此错误吗?

2012-10-17T20:28:52+00:00 heroku[web.1]: Starting process with command `node app.js`
2012-10-17T20:28:53+00:00 app[web.1]: bash: node: command not found

Heroku 应用程序似乎缺少节点。

该应用程序在本地启动得很好。工头启动和节点 app.js。

{
    "name": "app-name",
    "description": "some desc",
    "version": "0.0.1",
    "private": true,
    "engines": {
        "node": "0.8.12",
        "npm":  "1.1.49"
    },
    "dependencies": {
        "express" : "2.5.9",
        "mongoose" : ">=2.6.0",
        "colibri" : "*",
        "jade": ">= 0.0.1"
    }
}
4

6 回答 6

7

为我解决的问题是在 heroku 设置中添加 heroku/nodejs buildpack。

于 2016-06-14T02:42:29.397 回答
7

老问题,但是,尝试添加一个engines部分到您的package.json

"engines": {
    "node": ">= 6.9.4",
    "npm": ">= 4.4.0"
  }
于 2017-05-27T13:44:42.943 回答
3

首先,确保您的应用程序使用的是 heroku/nodejs buildpack:

$ heroku buildpacks

  1. heroku/nodejs

如果不是这种情况,则使用以下命令将您的 builpack 更改为 nodejs:

$ heroku buildpacks: 设置 heroku/nodejs

终端图片

于 2020-05-10T13:35:15.617 回答
2

tl; dr:遇到同样的问题,heroku restart对我有用。


长版:事情是这样的:

  1. heroku logs我看到:

    heroku[slugc]: Slug compilation finished  
    heroku[web.1]: Starting process with command `node app.js`  
    app[web.1]: bash: node: command not found  
    heroku[web.1]: Process exited with status 127  
    heroku[router]: at=error code=H20 desc="App boot timeout" method=GET path=/ host=node-network.herokuapp.com fwd=70.28.80.4 dyno= queue= wait= connect= service= status=503 bytes=
    heroku[web.1]: State changed from starting to down
    
  2. 所以我跑了heroku restart,得到:

    heroku[web.1]: State changed from down to starting
    heroku[web.1]: Starting process with command `node app.js`
    app[web.1]: Listening on port 30693
    heroku[web.1]: State changed from starting to up
    
于 2013-02-06T18:35:03.493 回答
2

Heroku 通过 package.json 的存在将应用程序识别为 Node.js。即使您的应用程序没有依赖项,您仍然应该创建一个 package.json 来声明名称、版本和空依赖项,以便它显示为 Node 应用程序。

https://devcenter.heroku.com/articles/nodejs

于 2012-10-17T21:26:00.990 回答
2

我的修复是删除 package.json.lock。我有我的 yarn.lock 和 package.json.lock。

显然,heroku 不喜欢这样。

于 2018-04-12T01:00:11.880 回答