ElasticBeanstalk nodejs.log找不到模块“hogan.js”

我有一个简单的node.js应用程序使用"hogan": "^1.0.2" (来自"dependencies"下的packages.json )。

它没有部署,并在日志中查看,我看到(多次):

Error: Cannot find module 'hogan.js' at Function.Module._resolveFilename (module.js:325:15) at Function.Module._load (module.js:276:25) at Module.require (module.js:353:17) at require (internal/module.js:12:17)

我对EB上的node.js相当陌生,刚刚使用预先存在的Express应用程序跟随http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs_express.html 。

假设EB为我运行npm install (这是一个安全的假设?),这个问题可能是什么?

对于它的价值,我也有类似的问题,并确定这是由于案件问题。 在节点EB容器中,操作系统是区分大小写的,因为我忽略了git中的文件大小更改,所以它并没有更新存储库中的文件大小。

如果这是问题,你应该运行git config core.ignorecase false

我使用"hogan": "^1.0.2"而不是"hogan.js": "^3.0.2" ,在本地工作,但不在EB上。

霍根只是一个非官方的别名,是对hogan.js做出的 。

切换之后,我不再收到hogan.js错误。

您也可以将"hogan": "^3.0.2"更改为"hogan": "*"因为EB会为您运行npm install 。 如果EB无法find具有“^”的特定版本,则可能无法像在本地一样安装软件包。 你也可以在做eb createeb deploy前检查你的文件结构。 如果您正在使用命令行,则可能包含一些不必要的内容。 我build议你用你需要的文件(比如package.jsonapp.jsindex.html创build一个application.zip文件并通过GUI上传。 不要将node_modules.zip文件中,这很麻烦。