Конфигурация прокси-сервера Sapper Rollup для функций Netlify

#javascript #proxy #netlify #rollup #sapper

#javascript #прокси #netlify #свертка #sapper

Вопрос:

Я использую шаблон накопительного прокси-сервера Sapper и не могу понять, как использовать прокси /.netlify/functions для localhost:9000 . Я пробовал http-proxy-middleware в setupProxy.js файл, но я не уверен, где ссылаться на этот файл, учитывая, что сервер разработки Sapper, похоже, не настраивается с помощью Rollup?

У меня есть функция в /src/functions/&et-code.js , и я использую Netlify lambda для ее тестирования:

packa&e.json

 ...
"scripts": {
  "dev": "sapper dev",
  "lambda:dev": "netlify-lambda serve src/functions",
  ...
  

netlify.toml

 [build]
  command = "npm run build"
  functions = "lambda"
  

Я могу протестировать свою функцию на https://localhost:9000/&et-code , и она работает нормально. Однако в моем приложении у меня есть функция внутри файла utilities.js , которая пытается сделать запрос к /.netlify/functions/&et-code.

 export const &etCode = (obj) =&&t; {
  return axios
    .post('.netlify/functions/&et-code', JSON.strin&ify(obj))
    .then((response) =&&t; {
      return response.data
    })
    .catch(function (error) {
      console.error(error)
      return null
    })
}
  

Когда я запускаю свое приложение ( npm run dev ) и вызывается эта функция, это приводит к ECONNREFUSED ошибке, поскольку оно пытается вызвать http:.netlify/functions/&et-code .

Ответ №1:

Я пытался сделать то же самое в проекте Eleventy, пока не понял, что в этом нет необходимости. Вместо того, чтобы использовать netlify-lambda и пытаться проксировать порт 9000, просто используйте вместо этого Netlify Dev.

Установите интерфейс командной строки Netlify:

 npm install netlify-cli -&
  

затем запустите Netlify Dev из папки вашего проекта:

 netlify dev
  

Он запустит ваше приложение и обработает ваши http-запросы к /.netlify/functions/&et-code , так что вы сможете избежать проблем с прокси, а также проблем с CORS.