【发布时间】:2015-08-01 03:44:27
【问题描述】:
我正在使用 AWS Lambda,这涉及创建我的 node.js 脚本的存档,包括 node_modules 文件夹并将其上传到他们的基础设施以运行。
这很好用,除非涉及到具有本机绑定的节点模块(使用 node-gyp)。因为绑定是在我的本地计算机 (OS X) 上编译和存档的,所以它与 AWS 的 (Amazon Linux) 服务器不兼容。
如何交叉编译/安装节点模块(特别是 node-sqlite3),以便在将其上传到另一个服务器架构时运行?
【问题讨论】:
-
您是否尝试过使用 node-pre-gyp? node-sqlit3 已经在使用它,因此您在游戏中处于领先地位。 IIRC,它应该将构建卸载到 Amazon S3,因此您可以针对 Amazon Linux(AWS Lambda 的操作系统)进行编译。
-
是的,我看到 node-sqlite3 使用 node-pre-gyp,但我并没有真正理解这对我意味着什么或如何使用它来实现我想要的。
-
我知道这涉及额外费用,但我建议将广告构建打包到另一个 s3 盒子上。然后将其转移到您的生产环境。请注意,如果您在 linux 环境中执行 npm i,如果您拥有所需的构建工具,一切都可以开箱即用。
-
这有帮助吗? stackoverflow.com/questions/25797424/… 它基本上是说你需要有正确的环境变量让它知道要使用哪个编译器。
-
是的,这是一个开始,但我不知道我需要什么编译器或将环境变量设置为什么。我试过查找并找到我需要的东西,但发现这样做太难了。
标签: node.js amazon-web-services cross-compiling node-gyp aws-lambda