Heroku Deploy错误:找不到模块'./errors/cast'

时间:2014-02-21 05:23:39

标签: node.js git angularjs heroku yeoman

我使用yeoman angular-fullstack生成器构建了我的应用程序,然后根据自己的目的进行了修改。我使用yo angular-fullstack构建了dist文件夹以部署到heroku:deploy heroku。它为我创建了一个新的heroku应用程序,当我进入dist文件夹和git push heroku master时,一切都很好。

我希望能够将现有的heroku应用程序添加到此dist文件夹的部署过程中,因此我按照这篇文章How to link a folder with an existing Heroku app进行了操作。然后我可以使用与heroku不同的远程名称部署到我自己的应用程序。

当它开始在heroku上运行时,我一直收到同样的错误。我无法弄清楚为什么完全相同的代码在为我创建的应用程序上运行正常但不是我现有的应用程序。这几乎就像我需要清除node_modules并再次推送一样?

    2014-02-21T04:43:51.989439+00:00 app[web.1]: module.js:340
    2014-02-21T04:43:51.996351+00:00 app[web.1]: Error: Cannot find module './errors/cast'
    2014-02-21T04:43:51.996351+00:00 app[web.1]:     at Function.Module._resolveFilename (module.js:338:15)
    2014-02-21T04:43:51.991555+00:00 app[web.1]:     throw err;
    2014-02-21T04:43:51.991785+00:00 app[web.1]:           ^
    2014-02-21T04:43:51.996351+00:00 app[web.1]:     at require (module.js:380:17)
    2014-02-21T04:43:51.996351+00:00 app[web.1]:     at Module.require (module.js:36         4:17)
    2014-02-21T04:43:51.996351+00:00 app[web.1]:     at Function.Module._load (module.js:280:25)
    2014-02-21T04:43:51.996351+00:00 app[web.1]:     at Module._compile (module.js:456:26)
    2014-02-21T04:43:51.996351+00:00 app[web.1]:     at Function.Module._load (module.js:312:12)
    2014-02-21T04:43:51.996351+00:00 app[web.1]:     at Object.<anonymous> (/app/node_modules/mongoose/lib/error.js:32:27)
    2014-02-21T04:43:51.996351+00:00 app[web.1]:     at Module.load (module.js:356:32)
    2014-02-21T04:43:51.996351+00:00 app[web.1]:     at Object.Module._extensions..js (module.js:474:10)
    2014-02-21T04:43:51.996560+00:00 app[web.1]:     at Module.require (module.js:364:17)
    2014-02-21T04:43:53.457214+00:00 heroku[web.1]: State changed from starting to crashed

这是dist文件夹中的packages.json

   {
       "name": "myapp",
       "version": "1.0.0",
       "dependencies": {
         "express": "~3.4.3",
         "lodash": "~2.4.1",
         "mongoose": "~3.5.5",
         "mongoose-unique-validator": "~0.3.0",
         "connect-mongo": "~0.4.0",
         "passport": "latest",
         "passport-local": "latest",
         "passport-facebook": "latest",
         "passport-twitter": "latest",
         "passport-google": "latest",
         "ejs": "~0.8.4"
       },
       "engines": {
         "node": ">=0.10.0"
        },
        "scripts": {
          "test": "grunt test"
        }
      }

1 个答案:

答案 0 :(得分:3)

问题几乎可以肯定,您尚未签入所需的所有文件。如果您在git存储库中看不到问题,请尝试运行heroku run bash并使用cdlsmore来查看部署到Heroku的内容并查看缺少什么。

您的问题很可能是require('./errors/cast')但未检入演员文件。

<强>更新

另一种可能是您在OS X上检查了./errors/Cast,它不区分大小写,但在Linux上找不到区分大小写的文件。