【发布时间】:2015-10-14 08:58:16
【问题描述】:
我一直在尝试将我们的一个 node.js 应用程序转换并部署到 lambda 函数中,并且在 node_modules 依赖项方面遇到了一些问题 - 说它找不到某些模块。我首先创建了一个 package.json,npm 在本地安装依赖项,然后将节点模块文件夹复制到 lambda。
例如,我有一个需要 sequelize 和 convict 的项目,并且一直收到错误说它无法将 moment 模块作为子依赖项找到。我看到那个时刻包含在我的 node_modules 的根目录中,但它没有包含在 sequelize 模块下的子文件夹中。
但是,这个项目在本地运行良好。 lambda 有什么区别,使用它部署较长的节点模块列表的最佳实践是什么 - 只是 node_modules 文件夹的副本?在我拥有的其他一些更简单的项目中,可以毫无问题地复制少量的 node_modules。
{ "errorMessage": "找不到模块'moment'", "errorType": "错误", “堆栈跟踪”: [ "Function.Module._resolveFilename (module.js:338:15)", "Function.Module._load (module.js:280:25)", "Module.require (module.js:364:17)", “需要(module.js:380:17)”, “版本(/var/task/node_modules/sequelize/node_modules/moment-timezone/moment-timezone.js:14:28)”, “对象。(/var/task/node_modules/sequelize/node_modules/moment-timezone/moment-timezone.js:18:2)”, "Module._compile (module.js:456:26)", “Object.Module._extensions..js (module.js:474:10)”, "Module.load (module.js:356:32)", “Function.Module._load (module.js:312:12)” ] }【问题讨论】:
标签: aws-lambda