ElasticBeanstalk nodejs.log无法找到模块' hogan.js'

时间:2016-06-27 21:27:58

标签: node.js amazon-web-services elastic-beanstalk

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

一直未能部署,查看日志,我看到(多次):

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(这是一个安全的假设?),问题可能是什么?

3 个答案:

答案 0 :(得分:2)

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

如果出现问题,您应该运行git config core.ignorecase false

答案 1 :(得分:1)

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

hogan只是某人对hogan.js所做的非官方别名。

切换后我不再出现hogan.js错误。

答案 2 :(得分:0)

您也可以将"hogan": "^3.0.2"更改为"hogan": "*",因为EB会为您运行npm install。如果EB无法使用" ^"找到特定版本,则可能无法像在本地那样安装软件包。您也可以在执行eb createeb deploy之前检查文件结构。如果使用命令行,则可能包含不必要的内容。我建议您使用所需文件创建application.zip文件,例如package.jsonapp.jsindex.html,然后通过GUI上传。不要在node_modules文件中打包.zip,这很麻烦。