Używam serwera kompilacji do budowania moich projektów Vue, używając polecenia npm run build
ładnie dostarczonego przez szablon Vue 2. Szablon Vue zapewnia także dostęp do danych specyficznych dla środowiska, które można skonfigurować w plikach znajdujących się pod katalogiem config
. Rzeczy takie jak prod.env.js
, itp. Następnie dostęp do tych danych poprzez process.env.API_PREFIX
, jak widać w instrukcji szablonu.Kompilacja niezależna od środowiska za pomocą szablonu Webue Vue
Chcę móc raz zbudować kod, a następnie wdrożyć tę samą kompilację (zdefiniowaną przez wyjście w Dist
) do wielu serwerów, ale różne serwery mają inną konfigurację (różne API_PREFIX
itd.). Obecnie referencje process.env
są rozszerzane w czasie kompilacji przez kompilator Webpack. Dlatego muszę odbudować dla każdego środowiska.
Mogę wymyślić kilka sposobów na zrobienie tego - oczywiście ładowanie konfiguracji musi nastąpić w czasie wykonywania, a biorąc pod uwagę, że działa w przeglądarce i musi odwoływać się do jakiegoś pliku, to musiałoby przejść przez żądanie AJAX dotyczące statycznej konfiguracji JSON obsługiwane przez serwer WWW osobno lub podobne. Ale chciałbym wiedzieć, jak ktokolwiek tutaj poradziłby sobie z tym wymogiem.
Istnieje kilka trików, ale potrzebujemy więcej informacji o tym, jak określić API_PREFIX. Czy jest to powiązane z domeną, w której aplikacja będzie dostępna? Czy możesz podać konkretne przykłady? – aristidesfl
Tak, prefiks API jest przykładem danych konfiguracyjnych, które są specyficzne dla każdego środowiska. Byłaby to inna domena dla każdego środowiska wdrażania. Na przykład w kompilacji dla środowiska wdrażania "przemieszczanie" prefiks API może mieć postać 'https: // staging-api.mycompany.com'. [Zasadniczo nie można go jednak wyprowadzić z nazwy środowiska.] – amoe