Как использовать ES6 (ESM) импорт / экспорт в облачных функциях - PullRequest
1 голос
/ 25 января 2020
import functions from 'firebase-functions';
import UtilModuler from '@utilModuler'

exports.helloWorld = functions.https.onRequest((request, response) => {
 response.send("Hello from Firebase!");
});

импорт UtilModuler из '@utilModuler'; ^^^^^^^^^

SyntaxError: неожиданный идентификатор в модуле Module._compile (внутренний / modules / cjs / loader. js: 721: 23)

Предостережения

Я использую сторонние библиотеки (@utilModuler), которые были написаны через импорт / экспорт. Возможные обходные пути:

  1. Библиотека Fork и создание cjs файла с накопительным пакетом.
  2. esm работает как чудо, но вызывает ненужное потребление памяти

Вопрос : есть ли способ использовать гибридный импорт cjs и esm в облачной функции Google? (Кроме параметров, которые я описал выше)

Было бы неплохо использовать в функции развертывания что-то вроде - экспериментальные модули

1 Ответ

0 голосов
/ 18 апреля 2020
"devDependencies": {
  "@babel/core": "^7.2.0",
  "@babel/preset-env": "^7.2.0",
  "@babel/register": "^7.0.0"
}

.babelr c

{
  "presets": ["@babel/preset-env"]
}

точка входа node.js приложение

require("@babel/register")({})

// Import the rest of our application.
module.exports = require('./index.js')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...