Как разделить код между лямбда-функциями Netlify - PullRequest
3 голосов
/ 11 февраля 2020

У меня есть 3 отдельные функции, каждая в своих папках. Все они используют клиент Twilio и клиент Apollo для работы с SMS и сервером GraphQL соответственно.

Вместо того, чтобы иметь весь код для создания экземпляра каждого клиента (получить ключи от env et c.) В каждом файл, можно ли его где-то поместить и потребовать в?

Я попытался поместить код в файл. js в папке / функции верхнего уровня и указать его в коде функции, как показано ниже, и это работает локально работает нормально на netlify dev, но выдает ошибку Module not found '../twilioClient' при вызове функции в реальной среде.

/functions
  apolloClient.js
  twilioClient.js
  package.json - specifying deps used by above files
  /auth
    auth.js - require('../apolloClient')
    ...
  /trails
    trails.js - require('../twilioClient') etc.
    ...

1 Ответ

0 голосов
/ 30 апреля 2020

Я добился определенного успеха (локально и в режиме реального времени) при размещении общих модулей в локальный пакет npm:

/functions
  /utils
    package.json
    index.js
  /src
    /auth
      auth.js
    /trails
      trails.js
  package.json

Экспорт всех общих модулей в functions/utils/index.js и установка свойства "main": "index.js" в functions/utils/package.json.

В functions/package.json установите модуль:

{
  "dependencies": {
    ...
    "utils": "file:utils"
  }
}

И импортируйте его в свои функции (в functions/src/auth/auth.js): import { apolloClient, twilioClient } from "utils"

Пожалуйста, примите посмотрите этот репозиторий для справки.

...