【发布时间】:2016-02-04 08:17:13
【问题描述】:
我有一个包含几个“微服务”的存储库,我将它们上传到 AWS 的 Lambda。此外,我还有一些共享库,我想在发送到 AWS 时打包它们。
因此我的目录结构如下:
/micro-service-1
/dist
package.json
index.js
/micro-service-2
/dist
package.json
index.js
/shared-component-1
/dist
package.json
component-name-1.js
/shared-component-2
/dist
package.json
component-name-2.js
基本部署利用了方便的 node-lambda npm 模块,但是当我使用如下语句引用本地共享组件时:
var sharedService = require('../../shared-component-1/dist/index');
这与node-lambda run 命令配合得很好,但node-lambda deploy 放弃了这个本地依赖。可能是有道理的,因为我在依赖项中的“根”目录下面,所以我想也许我会利用 gulp 来完成这项工作,但我对它很陌生,所以我可能是做一些愚蠢的事情。我的策略是:
- 让
gulp deploy依赖于一个local-deps 任务 -
local-deps 任务将:
-
npm build --production到目录 - 然后将这个目录通过管道传递给
/local目录下的微服务 - 清理共享中的安装
-
-
然后我会像这样引用所有共享组件:
var sharedService = require('local/component-name-1');
希望这能实现我想要实现的目标。这个策略有意义吗?我应该考虑一种更简单的方法吗?有人在“gulp speak”中有类似的例子吗?
【问题讨论】:
-
我也遇到过这个问题。如果 node-lambda 包含它会很好。否则,gulp 任务似乎是要做的事情,但感觉非常“古怪”和令人费解。当我决定我要做什么时会在这里评论! :)
标签: node.js npm gulp aws-lambda