Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pl.comp.lang.javascript > #3545 > unrolled thread

Warunkowy import

Started byRoman Tyczka <noemail@because.no>
First post2019-01-11 09:19 +0100
Last post2019-01-11 19:11 +0100
Articles 8 — 3 participants

Back to article view | Back to pl.comp.lang.javascript


Contents

  Warunkowy import Roman Tyczka <noemail@because.no> - 2019-01-11 09:19 +0100
    Re: Warunkowy import Roman Tyczka <noemail@because.no> - 2019-01-11 11:48 +0100
      Re: Warunkowy import Borys Pogoreło <borys@pl.edu.leszno> - 2019-01-11 12:43 +0100
        Re: Warunkowy import Roman Tyczka <noemail@because.no> - 2019-01-11 13:13 +0100
          Re: Warunkowy import Borys Pogoreło <borys@pl.edu.leszno> - 2019-01-11 13:34 +0100
            Re: Warunkowy import Roman Tyczka <noemail@because.no> - 2019-01-11 13:39 +0100
              Re: Warunkowy import Borys Pogoreło <borys@pl.edu.leszno> - 2019-01-11 17:12 +0100
    Re: Warunkowy import rePeter <no@spam.no> - 2019-01-11 19:11 +0100

#3545 — Warunkowy import

FromRoman Tyczka <noemail@because.no>
Date2019-01-11 09:19 +0100
SubjectWarunkowy import
Message-ID<6wlm7ch35j3s$.dlg@tyczka.com>
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

[toc] | [next] | [standalone]


#3546

FromRoman Tyczka <noemail@because.no>
Date2019-01-11 11:48 +0100
Message-ID<1js8h2tfyj721$.dlg@tyczka.com>
In reply to#3545
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

[toc] | [prev] | [next] | [standalone]


#3548

FromBorys Pogoreło <borys@pl.edu.leszno>
Date2019-01-11 12:43 +0100
Message-ID<nviczlwbc9qs$.1lf4g35qqw2lj$.dlg@40tude.net>
In reply to#3546
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

[toc] | [prev] | [next] | [standalone]


#3549

FromRoman Tyczka <noemail@because.no>
Date2019-01-11 13:13 +0100
Message-ID<1ua2ud7f1coxd.dlg@tyczka.com>
In reply to#3548
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

[toc] | [prev] | [next] | [standalone]


#3551

FromBorys Pogoreło <borys@pl.edu.leszno>
Date2019-01-11 13:34 +0100
Message-ID<qryul9wp4m03$.vc8s5zly9q47.dlg@40tude.net>
In reply to#3549
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

[toc] | [prev] | [next] | [standalone]


#3553

FromRoman Tyczka <noemail@because.no>
Date2019-01-11 13:39 +0100
Message-ID<1ppychgepa2fr$.dlg@tyczka.com>
In reply to#3551
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

[toc] | [prev] | [next] | [standalone]


#3555

FromBorys Pogoreło <borys@pl.edu.leszno>
Date2019-01-11 17:12 +0100
Message-ID<1qq5bcuz67pvd.11uvz9omyaq18.dlg@40tude.net>
In reply to#3553
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

[toc] | [prev] | [next] | [standalone]


#3557

FromrePeter <no@spam.no>
Date2019-01-11 19:11 +0100
Message-ID<20190111191111.53103a39@spam.no>
In reply to#3545
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

[toc] | [prev] | [standalone]


Back to top | Article view | pl.comp.lang.javascript


csiph-web