Serverless Framework - делиться кодом между несколькими службами - PullRequest
0 голосов
/ 15 октября 2019

У меня есть несколько служб

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

Когда я выполняю severless локально с использованием автономного режима без сервера, мой импорт работает без проблем:

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 с общими библиотеками?
  • другой инструмент для упаковки?

Спасибо.

1 Ответ

1 голос
/ 15 октября 2019

Рекомендуется использовать пакет .json для каждой службы, а не пытаться использовать одну, совместно используемую несколькими службами. Вы можете получить дополнительную информацию об использовании package.json и безсерверной инфраструктуры здесь .

Я пробовал различные методы для совместного использования одного каталога node_modules, но решения хрупкие и в конечном итоге что-топойдет не так, как я представлю больше зависимостей и начну создавать версии сервисов.

Я пытаюсь разделить как можно больше данных между моими сервисами, но решил, что не стоит прилагать усилия для совместного использования одного каталога node_modules.

...