我试图将我的第一个节点应用程序部署到heroku。我已使用以下代码
设置Procfile
web: node ./app/server.js
但是当我部署到heroku并检查日志时,我看到错误Error: Cannot find module '/app/server.js'
。
在本地它运作正常。我的package.json
嵌套在scripts
"start": "nodemon ./app/server.js
答案 0 :(得分:1)
Nodemon
是一个实用程序,它将监视源中的任何更改并自动重新启动服务器。非常适合发展。
使用nodemon时,最好维护dev
和production
的脚本命令,如下所示:
"scripts": {
"start": "node ./app/server.js",
"dev": "nodemon ./app/server.js"
}
要确定如何启动应用,部署服务器(Heroku
)首先会查找Procfile
。如果Procfile
应用不存在Node.js
,则会尝试通过start
中的package.json
脚本启动默认网络流程。
如果您在脚本中使用nodemon
,则会在内部尝试运行node server.js
,但在您的情况下,启动文件会出现在app/server.js
中。为了避免这些问题,最好为dev
和production
使用两个单独的脚本命令。因此,在本地运行时,您可以使用npm dev
命令。