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. Драснете ако знаете по-културен начин.
Ако имате мнение или въпроси за статията, не се колебайте да ги споделите.
Vue emits с параметри
Предаването на събитията във Vue от компонент, обратно към този, който го извиква става с emits. Предаването може да се направи и с Pinia или друга библиотека за управление на 'състоянието', но това ще е за някоя друга статия.
Динамичен manifest.json
Ако желаете потребителите на вашето уеб приложение да го „инсталират“ на своите устройства, достатъчно е да попълните manifest.json
файла. Има широка поддръжка от всякакви браузъри и операционни системи и е елементарно да се направи, за да се пропуска.