【问题标题】:Serverless Framework - Share code between multiple services无服务器框架 - 在多个服务之间共享代码
【发布时间】:2019-10-15 07:21:50
【问题描述】:

我有多项服务

root/
    services/
        subscriptions/
        users/
    shared/
        httpUtils.js
        database.js
    node_modules/
    package.json

当我使用 serverless-offline 在本地运行无服务器时,我的导入工作没有问题:

const _ = import('lodash') // module_modules
const database = require('../../shared/database')

However, when I deploy the application won't start because of
error: cannot find module lodash
error: cannot find module ../../shared/database

每个服务是否需要在服务中拥有自己的 node_modules 依赖项?如果我可以从根目录和共享文件夹的单个 node_modules 加载依赖项,那就太好了。

对于一个包含多种服务的项目来说,实现这一点的标准做法是什么?

  • 每个服务都有自己的共享文件和节点模块副本?
  • 带有共享库的私有 npm 包?
  • 另一个打包工具?

谢谢。

【问题讨论】:

    标签: serverless-framework serverless


    【解决方案1】:

    建议您为每个服务使用一个 packages.json,而不是尝试使用跨多个服务共享的单个。您可以获取有关使用 package.json 和无服务器框架 here 的更多详细信息。

    我尝试了各种技术来共享单个 node_modules 目录,但解决方案很脆弱,最终会出现问题,因为我引入了更多依赖项并开始对服务进行版本控制。

    我确实尝试在我的服务之间尽可能多地共享,但我认为共享单个 node_modules 目录是不值得的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-22
      • 2016-11-05
      • 2012-11-10
      • 2016-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      相关资源
      最近更新 更多