Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Node runtime ESM Support #730

Open
r34son opened this issue Mar 25, 2024 · 1 comment
Open

Node runtime ESM Support #730

r34son opened this issue Mar 25, 2024 · 1 comment
Labels
cloud-functions Cloud Functions

Comments

@r34son
Copy link
Contributor

r34son commented Mar 25, 2024

В документации описан процесс управления зависимостями https://yandex.cloud/ru/docs/functions/lang/nodejs/dependencies

В другом ишью выснили, что для поддержки ESM синтаксиса можно обойтись использованием "type": "module" в package.json #282 (comment)

Получается неприятная ситуация:

В архиве есть уже все нужные пакеты в папке node_modules, но добавив в package.json "type": "module" - Cloud Functions начинает устанавливать пакеты и упирается в лимит по памяти https://yandex.cloud/ru/docs/functions/concepts/limits

Как вариант можно попробовать вычистить все кроме "type": "module" в package.json, но это все танцы с бубном, которых хотелось бы избежать.

@vnkiryushkin vnkiryushkin added the cloud-functions Cloud Functions label Mar 26, 2024
@r34son
Copy link
Contributor Author

r34son commented Mar 26, 2024

Для наглядности приложу пример создания архива с кодом функции (использую terraform). Мне приходится исключать package.json из архива, чтобы не упереться в лимиты (тут проблема возможна не только в лимитах, но и в пакетном менеджере отличном от npm). Не хочется тут еще костыли придумывать, чтобы обойти не понятные ограничения.
image
Какие вижу варианты:

  1. Начать обрабатывать энтрипоинты функций в формате .mjs, что является частью стандарта https://nodejs.org/api/esm.html#enabling. И как это сделано в aws https://docs.amazonaws.cn/en_us/lambda/latest/dg/nodejs-handler.html#nodejs-handler-naming. Могу ошибаться, но кмк доработок требуется минимально.
  2. Усовершенствовать процесс работы с зависимостями. (хочется иметь возможность использовать пакетные менеджеры помимо npm)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cloud-functions Cloud Functions
Projects
None yet
Development

No branches or pull requests

2 participants