HB's Thoughts

I try to think really hard.

27.03.2024 г.

Nitro, i18n and Dev Proxy

Когато ползвате Nuxt, нормално е да използвате и Nitro, но понякога това не влиза в сценария, който са Ви подготвили. За API заявките отговаря друг beck-end сървър и за да може да си разработвате локално приложението, трябва да се настрои прокси.

Nitro имат описание в документацията, как да настроите devProxy, и всичко работи добре, докато не се сблъсках с Nuxt приложение с активен i18n модул с няколко езикови локализации и настроен в режим (стратегия) prefix. При префиксната стратегия, URL адреса се подменя автоматично и devProxy спира да работи.

// nuxt.config.ts

export default defineNuxtConfig({
  nitro: {
    devProxy: {
      "/~": {
        target: "http://127.0.0.1:3243/",
      },
    },
  },
});

В нашия случай, всички заявки, които започват с /~, например: /~/api/request/method, Nitro ги пренасочва към другия beck-end сървър. Но когато в адреса ненадейно се добави и езиковата култура /en/~/api/request/method и Nitro спира да комуникира с др. сървър. Затова набързо обогатихме конфигурацията на devProxy.

// nuxt.config.ts

export default defineNuxtConfig({
  nitro: {
    devProxy: {
      "/bg/~": {
        target: "http://127.0.0.1:1818/",
      },
      "/en/~": {
        target: "http://127.0.0.1:1818/",
      },
      "/~": {
        target: "http://127.0.0.1:1818/",
      },
    },
  },
});

Идеята беше да потвърдим, че това така ще работи, но и до момента не съм открил друг начин. Проблема идва в добавянето на нова езикова локализация. Всяка една трябва да се добавя в конфигурацията на devProxy. Драснете ако знаете по-културен начин.


Ако имате мнение или въпроси за статията, не се колебайте да ги споделите.

Влезте в отворената дискусия в GitHub.


Компетентност: Про
Тагове: NuxtNitro