Heroku部署Node.js应用报错:bash: app.js: command not found 如何解决
Heroku部署Node.js应用提示app.js: command not found解决方案
报错的核心原因是Procfile启动命令配置错误,系统尝试将app.js作为独立可执行文件运行,而没有通过Node.js解释器执行该文件。
launch.json是VS Code本地调试配置文件,Heroku部署过程中不会读取该文件,与本次报错无关。
具体解决方案
- 修改Procfile内容,二选一即可:
- 直接指定Node执行:将Procfile原有内容替换为
web: node app.js - 调用package.json预设的start脚本:将Procfile原有内容替换为
web: npm start
- 直接指定Node执行:将Procfile原有内容替换为
- 补充端口监听逻辑(避免后续出现进程启动后立刻退出的崩溃问题):
Heroku会自动为web进程分配PORT环境变量,不可写死本地端口,参考代码如下:const express = require('express'); const app = express(); // 优先读取Heroku分配的端口,本地开发默认使用3000 const PORT = process.env.PORT || 3000; app.get('/', (req, res) => { res.send('服务运行正常'); }); app.listen(PORT, () => { console.log(`服务已启动,监听端口${PORT}`); }); - 提交修改后重新推送到Heroku触发部署即可解决报错。
内容的提问来源于stack exchange,提问作者DGR
相关产品推荐
相关产品推荐

