2015-03-31 30 views
6

Próbuję użyć pakietu Webpack do pakowania kodu reakcji, który jest renderowany po stronie serwera i po stronie klienta. Niektóre biblioteki, których próbuję użyć (np. glidejs), zakładają, że działają w przeglądarce.Webpack: Ignoruj ​​biblioteki klienta po stronie serwera

Właściwie nie używam lib do componentDidMount lub w innym punkcie, który nie zostanie wykonany na serwerze.

Jak mogę ich wymagać, ale po prostu po prostu nie robić nic w środowisku węzła?

Glidejs specjalnie chce jquery, okno i dokument. Podanie jquery wydaje się w porządku, ale nie wiem, co zrobić z oknem i dokumentem.

+1

znalazłeś dobre rozwiązanie? –

Odpowiedz

1

nie znalazłem piękną rozwiązanie tego problemu zbyt, ale - przynajmniej - nie dwa możliwe rozwiązania:

  1. Można pakiet kodu node.js z WebPacka określając node as target . Następnie możesz alias kodu po stronie klienta z pustymi skrótami.

  2. Możesz require() pustych skrótów i alias je w konfiguracji webpack do rzeczywistych modułów.

+0

Omijałem ten problem w moich aplikacjach, używając dwóch różnych plików wejściowych, jednego dla node.js i jednego dla przeglądarki. Ale w niektórych sytuacjach może to być niemożliwe (zwłaszcza przy reagowaniu). –

+0

Używam innej konfiguracji sieci Web z 'target: 'węzeł'', ale nie rozumiem, jak to zrobić. Czy wstawiasz pusty łańcuch dla aliasu takiego jak 'alias: ['glidejs': '']'? – kjs3

+0

Utwórz pusty moduł z komentarzem typu "wykluczony przez pakiet sieci Web" i pseudonimem tego modułu z ''glidejs''. –

Powiązane problemy