我正在主办一个关于heroku的大学项目,我需要主持一个django应用程序,它也需要一个npm库但我搜索了很多如何做到这一点,并且我认为我得到了它的手但现在我得到这个错误:
2018-06-14T10:19:22.798022+00:00 app[web.1]: throw err;
2018-06-14T10:19:22.798023+00:00 app[web.1]: ^
2018-06-14T10:19:22.798024+00:00 app[web.1]:
2018-06-14T10:19:22.798026+00:00 app[web.1]: Error: Cannot find module '/app/server.js'
2018-06-14T10:19:22.798028+00:00 app[web.1]: at Function.Module._resolveFilename (module.js:547:15)
2018-06-14T10:19:22.798029+00:00 app[web.1]: at Function.Module._load (module.js:474:25)
2018-06-14T10:19:22.798030+00:00 app[web.1]: at Function.Module.runMain (module.js:693:10)
2018-06-14T10:19:22.798031+00:00 app[web.1]: at startup (bootstrap_node.js:191:16)
2018-06-14T10:19:22.798033+00:00 app[web.1]: at bootstrap_node.js:612:3
这是我的package.json:
{
"name": "dpl-webtech",
"version": "1.0.0",
"description": "DBL - Webtech Group D24",
"main": "index.js",
"scripts": {
"start": "nf start"
},
"repository": {
"type": "git",
"url": "git+https://github.com/spiderangel123/DPL-WebTech.git"
},
"author": "Ahmad Alsarakbi",
"license": "ISC",
"bugs": {
"url": "https://github.com/spiderangel123/DPL-WebTech/issues"
},
"homepage": "https://github.com/spiderangel123/DPL-WebTech#readme",
"engines": {
"node": "8.11.2",
"npm": "6.1.0"
},
"dependencies": {
"npm": "^6.1.0",
"phantomjs-prebuilt": "^2.1.16"
}
}[![enter image description here][1]][1]
这是我的procfile:
web: gunicorn DBL.wsgi
web: node ./index.js
答案 0 :(得分:1)
请你分享文件结构。
当server.js的文件路径不正确时会发生此错误,因此请检查heroku正在采取的文件路径是否正确。
答案 1 :(得分:0)
如果您只需要包含软件包,则不需要包含web:node index.js但是我已经提到将它添加到Procfile中我读到有关如何将npm与heroku一起使用所以我有误解除非我添加它,否则它不会工作。
答案 2 :(得分:0)
尽管构建成功,但我最近也遇到了同样的问题。
问题不是出自您的项目存储库结构,其中缺少应用程序文件夹。 Heroku应用程序包含一个Procfile,该文件指定了由该应用程序的dynos执行的命令。加载应用程序时,Heroku将启动Web进程类型。
我的猜测是您没有Procfile,也没有定义Web流程。
最简单的方法是在项目的根目录中添加一个Procfile。 Procfile的名称没有扩展名。在其中,您添加具有以下结构的Web流程:<process type>: <command>
对于NodeJS应用,通常可以具有以下说明:
web: node dist/server/index.js
您只需要根据应用程序对其进行自定义。
答案 3 :(得分:0)
我收到此错误,就我而言,这是因为我的服务器启动文件是 index.ts
而不是 index.js
,因为我正在使用打字稿。