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

我使用yeoman angular-fullstack生成器构build了我的应用程序,然后根据自己的目的进行了修改。 我build立dist文件夹来部署到heroku使用哟angular-fullstack:部署heroku。 它为我创build一个新的heroku应用程序,当我cd到dist文件夹和git推heroku主一切都很好。

我希望能够将我现有的heroku应用程序添加到这个dist文件夹的部署过程,所以我跟着这篇文章如何链接一个文件夹与现有的Heroku应用程序 。 然后,我可以使用与heroku不同的远程名称部署到我自己的应用程序。

当它开始在heroku上运行时,我一直得到相同的错误。 我无法弄清楚为什么完全相同的代码在为我创build的应用程序运行正常,但不是我现有的应用程序。 这几乎就像我需要清除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" } } 

这个问题几乎可以肯定,你没有检查你需要的所有文件。 如果你在你的git仓库中看不到问题,试着运行heroku run bash并使用cdls等来查看部署到Heroku的东西,看看缺less了什么。

你的问题很可能是你require('./errors/cast')但是没有检入一个转换文件。

更新:

另外一种可能是你在OS X上检查了./errors/Cast ,这是不区分大小写的,但是这个文件在Linux上是不区分大小写的。