首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Heroku部署错误:无法在部署后运行节点应用程序:找不到模块'/ App /web.js‘

Heroku部署错误:无法在部署后运行节点应用程序:找不到模块'/ App /web.js‘
EN

Stack Overflow用户
提问于 2014-03-15 18:59:04
回答 2查看 6.6K关注 0票数 3

我有一个使用Express和MongoDB (mongoose)的node.js应用。它在本地运行得非常好。我将它部署到heroku似乎没有问题,但当我尝试实际启动应用程序时,它崩溃了。heroku日志显示:错误:找不到模块'/app/web.js‘

我是个新手,所以任何帮助都将不胜感激。谢谢!应用程序将帮助我的1型糖尿病女儿。

package.json:

代码语言:javascript
复制
    {
  "name": "projectglu",
  "version": "0.0.0",
  "dependencies": {
    "express": "~3.4.3",
    "lodash": "~2.4.1",
    "mongoose": "~3.8.8",
    "connect-mongo": "~0.4.0",
    "passport": "~0.2.0",
    "passport-local": "~0.1.6",
    "ejs": "~0.8.4"
  },
  "devDependencies": {
    "grunt": "~0.4.1",
    "grunt-autoprefixer": "~0.4.0",
    "grunt-bower-install": "~0.7.0",
    "grunt-concurrent": "~0.4.1",
    "grunt-contrib-clean": "~0.5.0",
    "grunt-contrib-coffee": "~0.7.0",
    "grunt-contrib-compass": "~0.6.0",
    "grunt-contrib-concat": "~0.3.0",
    "grunt-contrib-copy": "~0.4.1",
    "grunt-contrib-cssmin": "~0.7.0",
    "grunt-contrib-htmlmin": "~0.1.3",
    "grunt-contrib-imagemin": "~0.5.0",
    "grunt-contrib-jshint": "~0.7.1",
    "grunt-contrib-uglify": "~0.2.0",
    "grunt-contrib-watch": "~0.5.2",
    "grunt-google-cdn": "~0.2.0",
    "grunt-newer": "~0.5.4",
    "grunt-ngmin": "~0.0.2",
    "grunt-rev": "~0.1.0",
    "grunt-svgmin": "~0.2.0",
    "grunt-usemin": "~2.0.0",
    "jshint-stylish": "~0.1.3",
    "load-grunt-tasks": "~0.2.0",
    "time-grunt": "~0.2.1",
    "grunt-express-server": "~0.4.5",
    "grunt-open": "~0.2.0",
    "connect-livereload": "~0.3.0",
    "karma-ng-scenario": "~0.1.0",
    "grunt-karma": "~0.6.2",
    "karma-firefox-launcher": "~0.1.3",
    "karma-script-launcher": "~0.1.0",
    "karma-html2js-preprocessor": "~0.1.0",
    "karma-jasmine": "~0.1.5",
    "karma-chrome-launcher": "~0.1.2",
    "requirejs": "~2.1.10",
    "karma-requirejs": "~0.2.1",
    "karma-coffee-preprocessor": "~0.1.2",
    "karma-phantomjs-launcher": "~0.1.1",
    "karma": "~0.10.9",
    "karma-ng-html2js-preprocessor": "~0.1.0",
    "grunt-mocha-test": "~0.8.1",
    "supertest": "~0.8.2",
    "should": "~2.1.0",
    "grunt-env": "~0.4.1",
    "grunt-node-inspector": "~0.1.3",
    "grunt-nodemon": "~0.2.0",
    "open": "~0.0.4"
  },
  "engines": {
    "node": ">=0.10.0"
  },
  "scripts": {
    "test": "grunt test"
  }
}
EN

回答 2

Stack Overflow用户

发布于 2014-07-30 06:04:07

更清楚地说,问题可能是当你从Heroku网站创建Procfile时,你剪切并粘贴了"web: node web.js“,这基本上是告诉heroku哪个文件是你的入口点。您可能有一个不同的入口点,比如..所以把“server.js : node web.js”换成"web: node server.js“来解决你的问题。

票数 3
EN

Stack Overflow用户

发布于 2014-03-28 23:58:12

导致这种情况的原因有很多。

请检查您是否已添加“Procfile”。请使用Procfile,即应用程序根目录中的文本文件,明确声明应执行什么命令来启动web dyno。在这种情况下,您只需使用node执行Node脚本。

下面是一个Procfile示例:

web: node web.js

另一个罪魁祸首可能是错误配置的环境变量NODE_ENV。就我个人而言,命令Heroku设置NODE_ENV=production帮助我解决了我遇到的一个Cannot find module错误。执行此操作时,请将myapp替换为您的Heroku应用程序名称。

heroku labs:enable user-env-compile -a myapp heroku config:set NODE_ENV=production

如果这不能解决您的问题,请将devDependencies中声明的包转移到dependencies,以缓解NODE_ENV问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22422883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档