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:节点:找不到命令的主要内容,如果未能解决你的问题,请参考以下文章
CoffeeScript 不工作“-bash:咖啡:找不到命令”