Диалоговый поток в лямбда-функции netlify
Я пытаюсь создать бэкэнд для диалогового процесса, используя лямбда-функцию netlify, поскольку в противном случае веб-сайт должен быть статической целевой страницей на основе nuxt.js, размещенной там. Создание простой функции разрешения работает отлично, чтение и анализ учетных данных для аутентификации в Google проходит без проблем, но проблема возникает при попытке потребовать библиотеку диалогового потока. В браузере появляется ошибкаFunction invocation failed: TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type number
.
Во время бега netlify-lambda serve
Я получаю предупреждение:
WARNING in /mnt/c/Projects/deploy-landing/node_modules/google-gax/node_modules/semver/index.js 3:51-64
Critical dependency: the request of a dependency is an expression
.
Насколько я понимаю, netlify-lambda пытается использовать webpack в модуле диалогового потока, который, в свою очередь, имеет некоторые зависимости, требующие разрешения имен динамических модулей в стиле узла. Есть ли способ обойти эту проблему?
1 ответ
Я создал файл webpack.functions.js
:
module.exports = {
externals: { dialogflow: 'dialogflow' }
};
Затем в package.json
Я изменил сценарии, которые запускаю для запуска лямбда-функций, чтобы использовать этот файл конфигурации:
{
"scripts": {
"lambda-build": "netlify-lambda build --config ./webpack.functions.js \"./netlify/dev\""
...
}
...
}
Насколько я понимаю, netlify теперь не связывает диалоги, а вместо этого используется как модуль узла. Так или иначе - работает.