2016-04-14 9 views
5

Eksperymentuję z elektronem. Widzę wiele przykładów, które korzystają z pakietu internetowego.dlaczego używam Webpack z elektronem

Ale po co używać czegoś podobnego do webpacka? Ponieważ o ile mogę powiedzieć elektrony obsługuje require('module').

+0

Elektron jest na górze węzła. Aby uwzględnić moduł węzła, należy użyć funkcji wymagającej. https://nodejs.org/dist/latest-v5.x/docs/api/modules.html – apxp

+0

Wiem, więc jedynym powodem korzystania z WebPack (w tym scenariuszu) jest wtedy, gdy chcesz pakować swoje pliki? – Rutger

+1

Tak. A co, jeśli twoje pliki nie są JavaScriptem i trzeba je skompilować? Na przykład komponenty reagujące mają końcówkę jsx i muszą być wkompilowane w JS. – apxp

Odpowiedz

5

To nie jest opakowanie internetowe, które jest używane w elektronach. Funkcja require jest częścią node.js, która jest podstawą elektronu.

więcej danych o modułach w tych node.js dokumentów: https://nodejs.org/dist/latest-v5.x/docs/api/modules.html

Jednak dopóki WebPack jest availiable jako moduł węzła (https://www.npmjs.com/package/webpack), możliwe jest również użycie WebPACK elektrony. W tym momencie możesz również używać budowania w locie podczas produkcji, ponieważ węzeł i chrom są dostępne w jednej aplikacji.

Dlaczego warto używać pakietu internetowego z elektronami? Podczas korzystania z komponentów reakcji lub vue.js może warto rozdzielić komponenty. Aby spakować swój kod do jednej aplikacji, potrzebujesz browserfy lub webpacka. To byłby na przykład dobry powód, dlaczego go używać.

9

Nie ma powodu używać Webpacka w Electron, sprawdź electron-compile, aby używać Babel i LESS w Electron.

+7

Co zrobić, jeśli Twoja aplikacja korzysta z WebPacka, a Ty nie chcesz przepisać wszystko? A co, jeśli używasz komponentów vue.js do struktury kodu? A więc są tego powody. – apxp

+4

Dlaczego użycie komponentów vue.js wymaga pakietu WWW –

+1

Jeśli używasz pojedynczych plików .Vue, potrzebujesz modułu ładującego. – foundling

4

Pakiety sieciowe to nie tylko pakiet modułów JS; może być używany do łączenia zasobów statycznych (na przykład baza-64 obrazów), kompilowania Sass/Less/Stylus/CSS-Modules, eliminacji martwych kodów, drżenia drzewa i innych. Przy odpowiednim ładowaniu i konfiguracji wystarczy aktywnie pracować nad require('any-type-of-file.extension'). Jednak w moim osobistym doświadczeniu, Webpack jest cenny ze względu na jego serwer dev i Hot Module Replacement (HMR), który sprawia, że ​​Live Reload wydaje się być czymś z ciemnych wieków.

Podsumowując, uzyskuje się wszystkie połączone moce Gulp/Browserify/Rollup, ale z HMR na górze, wszystko w jednym narzędziu (i wiele i wiele i wiele ładowarek;).

Konfigurowanie pakietu Web Pack to bez wątpienia PITA, ale jeśli planujesz pracować nad aplikacją Electron przez dłuższy czas, warto zaoszczędzić czas z samego HMR.

+2

elektron-kompilacja, już popularna biblioteka programistyczna dla elektronów, wydaje się wspierać HMR: https://github.com/electron/electron-compile#live-reload-hot-module-reloading –

+2

Jak już powiedział @ScottCoates, istnieje kilka opcji szybkiego przeładowania w Electron, który po prostu obserwuje system plików w poszukiwaniu zmian. Powodem, dla którego HMR jest potrzebny w pakiecie internetowym, jest to, że przeglądarka nie ma możliwości powiadomienia o zmianach.To nie jest konieczne dla Electron i dodaje TON o niepotrzebnej złożoności, aby uzyskać pakiet HMR działający w sieci Web w Electron. – Osman