Heroku缺少模块

时间:2014-11-28 05:27:37

标签: node.js heroku npm

我试图将一个简单的node.js服务器部署到Heroku,但一直遇到这个错误:

Error: Cannot find module 'morgan'

我使用morgan进行一些HTTP日志记录,我在devDependencies下的package.json中有摩根(还有很多其他人)

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

我可以在本地执行npm install并启动服务器而不会出现任何问题,但是当我部署到Heroku时,我会在启动服务器后继续遇到该错误。

我有什么遗忘的吗?

1 个答案:

答案 0 :(得分:10)

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

  

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

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

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