🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.javascript
8 messages
8 total messages Started by Roman Tyczka Fri, 11 Jan 2019 08:19
Warunkowy import
#51962
Author: Roman Tyczka
Date: Fri, 11 Jan 2019 08:19
16 lines
1519 bytes
Mam zatem tego webpacka skonfigurowanego, w nim babel i inne dodatki.
I teraz mam kod, klasę, która służy do łączenia do serwera REST, klasa jest
w osobnym pliku, ale ES6 ma funkcjonalność import więc to nie problem. Ale
ta klasa w konstruktorze oczekuje obiektu z parametrami połączenia do tego
serwera i oczywiście inne są te dane dla produkcji a inne dla deweloperki.
Na poziomie generowania plików webpackiem, wiem czy generuję w trybie
produkcji czy deweloperskim. Jak to połączyć? Czyli w jaki sposób zrobić
przekazywanie parametrów zależnie od trybu pracy webpacka?

W PHP było prosto, miałem dwa pliki konfiguracyjne o tej samej nazwie, ale
różnej zawartości, wiadomo o co chodzi. Tutaj nie wiem jak to ugryźć.

-- 
pozdrawiam
Roman Tyczka
Re: Warunkowy import
#51963
Author: Roman Tyczka
Date: Fri, 11 Jan 2019 10:48
19 lines
1631 bytes
On Fri, 11 Jan 2019 09:19:25 +0100, Roman Tyczka wrote:

> Mam zatem tego webpacka skonfigurowanego, w nim babel i inne dodatki.
> I teraz mam kod, klasę, która służy do łączenia do serwera REST, klasa jest
> w osobnym pliku, ale ES6 ma funkcjonalność import więc to nie problem. Ale
> ta klasa w konstruktorze oczekuje obiektu z parametrami połączenia do tego
> serwera i oczywiście inne są te dane dla produkcji a inne dla deweloperki.
> Na poziomie generowania plików webpackiem, wiem czy generuję w trybie
> produkcji czy deweloperskim. Jak to połączyć? Czyli w jaki sposób zrobić
> przekazywanie parametrów zależnie od trybu pracy webpacka?

Trochę mi to zajęło, ale mam rozwiązanie i nawet działa, choć inaczej niż
chciałem:

https://webpack.js.org/plugins/define-plugin/

-- 
pozdrawiam
Roman Tyczka
Re: Warunkowy import
#51964
Author: Borys Pogoreło
Date: Fri, 11 Jan 2019 11:43
11 lines
1155 bytes
Dnia Fri, 11 Jan 2019 11:48:43 +0100, Roman Tyczka napisał(a):

> Trochę mi to zajęło, ale mam rozwiązanie i nawet działa, choć inaczej niż
> chciałem:

Nie kombinuj z różnymi buildami dla testów/produkcji, tylko skorzystaj z
plików konfiguracyjnych lub zmiennych środowiskowych.

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Re: Warunkowy import
#51965
Author: Roman Tyczka
Date: Fri, 11 Jan 2019 12:13
19 lines
1452 bytes
On Fri, 11 Jan 2019 12:43:05 +0100, Borys Pogoreło wrote:

>> Trochę mi to zajęło, ale mam rozwiązanie i nawet działa, choć inaczej niż
>> chciałem:
> 
> Nie kombinuj z różnymi buildami dla testów/produkcji, tylko skorzystaj z
> plików konfiguracyjnych lub zmiennych środowiskowych.

W package.json mam kilka buildów:

"dev": "webpack --mode development",
"build": "npm run clean && webpack --mode production"

ale webpack.config.js mam jedno i w nim sprawdzam "mode" i steruję
przetwarzaniem plików, czy inaczej to powinienem robić?

-- 
pozdrawiam
Roman Tyczka
Re: Warunkowy import
#51966
Author: Borys Pogoreło
Date: Fri, 11 Jan 2019 12:34
12 lines
1360 bytes
Dnia Fri, 11 Jan 2019 13:13:44 +0100, Roman Tyczka napisał(a):

> ale webpack.config.js mam jedno i w nim sprawdzam "mode" i steruję
> przetwarzaniem plików, czy inaczej to powinienem robić?

To znów nie ma żadnego związku z webpackiem, chyba że konkretnie chcesz
mieć inne pakiety wynikowe na produkcję (np. z wyciętym kodem debug). To
aplikacja powinna wspierać różne konfiguracje zależnie od środowiska.

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Re: Warunkowy import
#51967
Author: Roman Tyczka
Date: Fri, 11 Jan 2019 12:39
20 lines
1887 bytes
On Fri, 11 Jan 2019 13:34:10 +0100, Borys Pogoreło wrote:

>> ale webpack.config.js mam jedno i w nim sprawdzam "mode" i steruję
>> przetwarzaniem plików, czy inaczej to powinienem robić?
> 
> To znów nie ma żadnego związku z webpackiem, chyba że konkretnie chcesz
> mieć inne pakiety wynikowe na produkcję (np. z wyciętym kodem debug). To
> aplikacja powinna wspierać różne konfiguracje zależnie od środowiska.

Ok, to napisz konkretniej jak to powinno wyglądać, bo mi nic te zdawkowe
odpowiedzi nie podpowiadają, a chętnie się dowiem jak to się poprawnie
robi. Póki co mam tak, że mam dwie "kompilacje", jedna produkcyjna, która
jest zminifikowana (bez komentarzy, bez console.log, itd.), a druga
developerska/debugowa, która ma pełny kod i mogę ją testować. Sama
aplikacja JS jest w jednej wersji, poza drobną różnicą z adresami serwera
RESTowego do którego się łączy.

-- 
pozdrawiam
Roman Tyczka
Re: Warunkowy import
#51968
Author: Borys Pogoreło
Date: Fri, 11 Jan 2019 16:12
15 lines
1578 bytes
Dnia Fri, 11 Jan 2019 13:39:32 +0100, Roman Tyczka napisał(a):

> developerska/debugowa, która ma pełny kod i mogę ją testować. Sama
> aplikacja JS jest w jednej wersji, poza drobną różnicą z adresami serwera
> RESTowego do którego się łączy.

Ja polecam przykładowo ten pakiet:
https://www.npmjs.com/package/dotenv
który pozwala łatwo łączyć zmienne środowiskowe z plikiem konfiguracyjnym -
wtedy możesz sobie to poukładać jak tylko Ci wygodniej. A obiekt parametrów
połączenia sobie budujesz z wartości odczytanych z process.env.*

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Re: Warunkowy import
#51969
Author: rePeter
Date: Fri, 11 Jan 2019 18:11
23 lines
2776 bytes
Fri, 11 Jan 2019 09:19:25 +0100      
Roman Tyczka <noemail@because.no>   napisał(a):

> Mam zatem tego webpacka skonfigurowanego, w nim babel i inne dodatki.
> I teraz mam kod, klasę, która służy do łączenia do serwera REST, klasa jest
> w osobnym pliku, ale ES6 ma funkcjonalność import więc to nie problem. Ale
> ta klasa w konstruktorze oczekuje obiektu z parametrami połączenia do tego
> serwera i oczywiście inne są te dane dla produkcji a inne dla deweloperki.
> Na poziomie generowania plików webpackiem, wiem czy generuję w trybie
> produkcji czy deweloperskim. Jak to połączyć? Czyli w jaki sposób zrobić
> przekazywanie parametrów zależnie od trybu pracy webpacka?
> 
> W PHP było prosto, miałem dwa pliki konfiguracyjne o tej samej nazwie, ale
> różnej zawartości, wiadomo o co chodzi. Tutaj nie wiem jak to ugryźć.
> 


Wystarczyłby jeden plik konfiguracyjny z warunkiem sprawdzającym czy jest odpalony na
localhoscie czy gdzie tam masz środowisko developerskie. To samo w JS.


-- 
pozdrawiam, Peter
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads