我有一个使用"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
(这是一个安全的假设?),问题可能是什么?
答案 0 :(得分:2)
对于它的价值,我也遇到了类似的问题,并确定这是由于存档案件问题。在节点EB容器中,操作系统区分大小写,因为我忽略了git中的文件大小写更改,所以它没有更新存储库中的文件大小。
如果出现问题,您应该运行git config core.ignorecase false
。
答案 1 :(得分:1)
我使用的是"hogan": "^1.0.2"
而不是"hogan.js": "^3.0.2"
,它在本地工作但不在EB上工作。
切换后我不再出现hogan.js错误。
答案 2 :(得分:0)
您也可以将"hogan": "^3.0.2"
更改为"hogan": "*"
,因为EB会为您运行npm install
。如果EB无法使用" ^"找到特定版本,则可能无法像在本地那样安装软件包。您也可以在执行eb create
或eb deploy
之前检查文件结构。如果使用命令行,则可能包含不必要的内容。我建议您使用所需文件创建application.zip
文件,例如package.json
,app.js
和index.html
,然后通过GUI上传。不要在node_modules
文件中打包.zip
,这很麻烦。