Heroku bash:节点:找不到命令

Posted

技术标签:

【中文标题】Heroku bash:节点:找不到命令【英文标题】:Heroku bash: node: command not found 【发布时间】:2012-10-08 05:28:31 【问题描述】:

以前在 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 应用缺少节点。

应用程序在本地启动得很好。 foreman start 和 node 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"
    

【问题讨论】:

当我尝试“heroku run node”时,我得到同样的错误“bash: node: command not found” 有解决办法吗? 如果您正在使用除 master/main 之外的分支,在运行节点命令之前,请使用 git push heroku dev:main (dev 是分支名称) 【参考方案1】:

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

这个答案拯救了我的周末。【参考方案3】:

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

$ heroku buildpacks

    heroku/nodejs

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

$ heroku buildpacks: 设置 heroku/nodejs

Image of terminal

【讨论】:

请勿贴代码或日志截图,直接复制到你的帖子中。 谢谢,这为我节省了大量工作。我在一个存储库中使用 Python 和 Node,显然它只注册了 Python【参考方案4】:

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

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

【讨论】:

我已经有一个 package.json。用它编辑了我原来的问题。【参考方案5】:

tl;dr:遇到同样的问题,heroku restart 为我工作。


长版:是这样的:

    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
    

    所以我跑了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
    

【讨论】:

【参考方案6】:

解决我的问题是删除 package.json.lock。 我有我的 yarn.lock 和 package.json.lock。

显然,heroku 不喜欢那样。

【讨论】:

以上是关于Heroku bash:节点:找不到命令的主要内容,如果未能解决你的问题,请参考以下文章

通过桌面图标运行 bash 脚本时找不到节点命令

CoffeeScript 不工作“-bash:咖啡:找不到命令”

在heroku上找不到gunicorn

mpjboot bash:java:找不到命令

Docker /bin/bash: nodemon: 找不到命令

heroku sequelize:找不到命令