• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

wersja publiczna strony www - bundling etc

Object Storage Arubacloud
0 głosów
115 wizyt
pytanie zadane 12 kwietnia 2017 w JavaScript przez crova Użytkownik (940 p.)

Witam,

jestem jeszcze dość zielony w webdev i trochę się już pogubiłem. Przejdę zatem do sedna - mam wersję produkcyjną strony, która zawiera kilka dokumentów html, trochę zdjęć, kilka arkuszy css, kilka bibliotek js i dwa pliki js. Chciałbym to teraz przepuścić przez webpack w ten sposób, aby otrzymać te kilka dokumentów html wraz z jednym plikiem css i jednym js. 

Nie bardzo jednak wiem jak to zrobić. Domyślam się, że np. w przypadku jquery wystarczy samo 

require('jquery')

niemniej jednak w przypadku różnych jquerowych pluginów nie uda mi się zrobić tego tak prosto. W związku z tym zdaje się, że trzeba użyć metody module.exports w ich kodach źródłowych, co zrodzi potrzebę przepisania ich jako obiekt, co po minifikacji daje nam tony pracy. Dlatego też wydaje mi się, że w moim rozumowaniu zachodzi jakiś poważny błąd. 

Mógłby mi ktoś łopatologicznie i po kolei wytłumaczyć jak się to normalnie robi?

1 odpowiedź

+1 głos
odpowiedź 12 kwietnia 2017 przez ShiroUmizake Nałogowiec (46,300 p.)

To zalezy, czy używasz common,require czy ES6, każdy inaczej robi. 

CSS? Webpack? Pierwsze słyszę.

Ja używam node-sass daje radę ;).

Nie bardzo jednak wiem jak to zrobić. Domyślam się, że np. w przypadku jquery wystarczy samo 

plain-text

Kopiuj

?

1

require('jquery')

 

Jak masz zaintalowane jako node_modules. 

niemniej jednak w przypadku różnych jquerowych pluginów nie uda mi się zrobić tego tak prosto. W związku z tym zdaje się, że trzeba użyć metody module.exports. 

Nie choć to zależy czy ściągałeś za pomocą npm. Dwa zależy od użytej biblioteki. Module.exports należy do Node.js.

https://nodejs.org/api/modules.html

Zakładam, że używasz common.js

http://requirejs.org/docs/commonjs.html

A wiesz, że babel domyślnie nie obsługuje common.js. Nie wiem czy Treaceur potrafi. However możesz użyć webpack ale musisz mu jasno wskazać co gdzie jak. 

Babel 6 Changes

Babel 6 changed some behavior by not doing module.exports = exports['default'] anymore in the modules transforms.

There are some caveats, but you can use babel-plugin-add-module-exports, so that updating to Babel 6 isn't a breaking change since users that don't use ES modules don't have to do require("your-module").default.

However, it may not match how Node eventually implements ES modules natively given the the current proposal.

Rollup.js to potrafi.

Tu masz jego konfiguracje.

https://rollupjs.org/#using-config-files

 niemniej jednak w przypadku różnych jquerowych pluginów nie uda mi się zrobić tego tak prosto.

Przecież każdy z tych pluginów odwołuje się do Jquery ;p. Ba jak spojrzysz do kodu obiektu po webpacku, zobaczysz odwołowania do klucza jQuery.

W związku z tym zdaje się, że trzeba użyć metody module.exports w ich kodach źródłowych

Możesz z poziomu klasy/modułu wywoływać listenery, bądż importować do modelu

co zrodzi potrzebę przepisania ich jako obiekt, 

jQuery jest obiektem, moduł jest obiektem i funkcja jest też obiektem! I zarówno obiekt,moduł i funkcję możesz eksportować.

co po minifikacji daje nam tony pracy

To nie jest munifikowanie, a bundlowanie kodu. Webpack za nas większośc robi. Jak chcesz munifikować to użyj tego --> uglefify

 

 

Podobne pytania

+1 głos
0 odpowiedzi 495 wizyt
+1 głos
0 odpowiedzi 197 wizyt
pytanie zadane 6 maja 2017 w JavaScript przez DarQ Obywatel (1,030 p.)
0 głosów
0 odpowiedzi 90 wizyt
pytanie zadane 25 września 2021 w Inne języki przez Grzegorz Mikina Dyskutant (8,060 p.)

92,539 zapytań

141,382 odpowiedzi

319,477 komentarzy

61,928 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...