Heroku bash:node:命令未找到

时间:2012-10-17 20:45:36

标签: node.js heroku express mongoose

有人在之前在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"
    }
}

6 个答案:

答案 0 :(得分:3)

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

$ heroku buildpacks

  1. heroku / nodejs

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

$ heroku buildpacks:设置heroku / nodejs

Image of terminal

答案 1 :(得分:2)

  

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

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

答案 2 :(得分: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
    

答案 3 :(得分:2)

为我修复的是在heroku设置中添加heroku / nodejs buildpack。

答案 4 :(得分:0)

旧问题,但是,请尝试在engines添加package.json部分:

"engines": {
    "node": ">= 6.9.4",
    "npm": ">= 4.4.0"
  }

答案 5 :(得分:0)

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

显然,heroku不喜欢这样。