Heroku缺less模块

我试图部署一个简单的node.js服务器到Heroku,但继续运行到这个错误:

Error: Cannot find module 'morgan' 

我使用morgan做一些HTTP日志logging,我有我的package.json devDependencies(以及许多其他)

 "devDependencies": { "morgan": "~1.5.0" } 

我可以在本地执行npm install ,并且无任何问题地启动服务器,但是当我部署到Heroku时,一旦启动服务器,就会一直运行该错误。

有什么我忘了吗?

默认情况下Heroku执行npm install --production避免安装devDependencies,引用Heroku的字面文档。

Heroku node buildpack运行npm install –production,它不会在你的package.json文件中安装devDependencies。 如果您希望在部署到Heroku时安装开发依赖项,则应该将您的构build依赖关系(如grunt插件)从devDependencies移动到package.json中的依赖项。

如果您使用Morgan模块,则需要将其移至“依赖关系”。

来源: https : //devcenter.heroku.com/articles/nodejs-support