Úvodná » kódovanie » Začíname s Webpackom [s príkladom projektu]

    Začíname s Webpackom [s príkladom projektu]

    Webpack je a modul zväzok ktorý uľahčuje vytváranie komplexných aplikácií JavaScriptu. Získala vážnu trakciu, keďže komunita React si ju vybrala ako svoj hlavný nástroj na budovanie. Webpack je ani správca balíkov, ani úloha pretože používa iný (pokročilejší) prístup, ale jeho cieľom je tiež nastaviť dynamický proces vytvárania.

    Webpack pracuje s Java vanilkami. Môžete ho použiť zbaliť statické aktíva aplikácie, ako sú obrázky, písma, šablóny so štýlmi, skripty do jedného súboru starať sa o všetky závislosti.

    Webpack nebudete potrebovať na vytvorenie jednoduchej aplikácie alebo webovej lokality, napríklad webovú stránku, ktorá má iba jeden JavaScript a jeden súbor CSS a niekoľko obrázkov, ale môže to byť život zachránca pre zložitejšie aplikácie s viacerými aktívami a závislosťami.

    Webpack vs. úloha bežiaci verzus Browserify

    Takže, ako sa Webpack zhromažďuje v porovnaní s inými nástrojmi na vytváranie ako napríklad Grunt, Gulp alebo Browserify?

    Grunt a Gulp sú bežci. Vo svojom konfiguračnom súbore vy zadajte úlohy, a spúšťač úloh ich vykoná. pracovný tok úlohy v podstate vyzerá takto:

    IMAGE: protereact.com

    Webpack je však modul zväzok ktorá analyzuje celý projekt, nastaví strom závislostí, a vytvára zväzok súboru JavaScript že slúži pre prehliadač.

    IMAGE: protereact.com

    Prehliadanie je bližšie k Webpacku ako úloha, ako aj vytvára graf závislosti ale robí to len pre moduly JavaScript. Webpack ide ešte o krok ďalej, a nie len zväzok zdrojového kódu, ale aj iné aktíva ako sú obrázky, šablóny so štýlmi, písma atď.

    Ak chcete vedieť viac o ako sa Webpack porovnáva s ďalšími nástrojmi na vytváranie, Odporúčam vám dva články:

    1. Andrew Ray je Webpack: kedy používať a prečo na svojom vlastnom blogu
    2. Cory House's Prehliadajte vs Webpack na freeCodeCamp (s úžasnými ilustráciami)

    Dve uvedené obrázky sú z Materiály Webpack v príručke Pro React, ďalší zdroj, ktorý stojí za pohľad.

    Štyri základné koncepty Webpack

    Webpack má štyri hlavné konfiguračné voľby “základné pojmy” že v procese vývoja budete musieť definovať:

    1. vstup - štartovací bod grafu závislosti (jeden alebo viac súborov JavaScript).
    2. Výkon - súbor, kde chcete výstup, ktorý sa má zväzovať (jeden súbor JavaScript).
    3. nakladače - premeny na aktíva, ktoré premeniť ich na moduly Webpack aby mohli byť pridané do grafu závislostí. Napríklad, css-nakladače sa používa na import súborov CSS.
    4. plugins - vlastné akcie a funkcie vykonávané na zväzku. Napríklad i18n-WebPack-plugin vloží lokalizáciu do zväzku.

    Nakladače pracujú na základe súborov pred kompilaciou. Pluginy sa vykonávajú na zväzku kódov, na konci procesu kompilácie.

    Inštalovať Webpack

    na nainštalujte Webpack, otvorte príkazový riadok, prejdite do priečinka projektu a spustite nasledujúci príkaz:

     npm init 

    Ak nechcete urobiť konfiguráciu sami, môžete vytvoriť npm naplniť package.json súbor s predvolenými hodnotami s nasledujúcim príkazom:

     npm init -y 

    Potom nainštalujte Webpack:

     npm inštalovať webový balík - save-dev 

    Ak ste použili predvolené hodnoty, tak toto je vaše package.json súbor by mal vyzerať ako teraz (vlastnosti môžu byť v inom poradí):

     "name": "_tests", "verzia": "1.0.0", "popis": "", "main": "webpack.config.js" .0 "," devDependencies ": " webpack ":" ^ 3.6.0 "," scripts ": " test ":" echo \ "Chyba: ": []," autor ":" "," licencia ":" ISC " 

    Vytvorte konfiguračný súbor

    Musíte vytvoriť webpack.config.js súbor v hlavnom priečinku projektu. Tento konfiguračný súbor má ústrednú úlohu, pretože tu práve ide definovať štyri základné koncepty (vstupné body, výstup, nakladače, pluginy).

    webpack.config.js súbor uchováva konfiguračný objekt ktorých vlastnosti je potrebné špecifikovať. V tomto článku špecifikujeme štyri vlastnosti zodpovedajú štyrom základným konceptom (vstup, výkon, modul, a zapojiť), ale konfiguračný objekt má aj iné vlastnosti.

    1. Vytvorte vstupné body

    Môžeš mať jeden alebo viac vstupných bodov. Musíte ich definovať v vstup vlastnosť.

    Vložte nasledujúci útržok kódu do priečinka webpack.config.js súboru. to určuje jeden vstupný bod:

     module.exports = entry: "./src/script.js"; 

    Určiť viac ako jeden vstupný bod, ktorý môžete použiť buď pole alebo syntax objektu.

    Vo vašom priečinku projektu, vytvoriť nový src zložka a a script.js súbor v nej. Toto bude vaše vstupný bod. Na účely testovania len umiestnite reťazec vnútri. Použil som nasledujúci (môžete však použiť aj zaujímavý):

     const greeting = "Ahoj, som spustený projekt Webpack."; document.write (pozdrav); 

    2. Definujte výstup

    Môžeš mať iba jeden výstupný súbor. Služba Webpack vkladá do tohto súboru všetky aktíva. Musíte nakonfigurovať výkon nehnuteľnosti nasledujúcim spôsobom:

     const path = vyžaduje ("cesta"); module.exports = entry: "./src/script.js", výstup: názov súboru: "bundle.js", cesta: path.resolve (__ dirname, 'dist'); 

    názov súboru Vlastnosť definuje názov pribaleného súboru, kým cesta vlastnosť určuje názov adresára. Vyššie uvedený príklad vytvorí /dist/bundle.js súbor.

    Aj keď to nie je povinné, je lepšie Použi path.resolve () metóda keď definujete cesta majetok, ako to zabezpečuje presné rozlíšenie modulu (absolútna cesta výstupu je vytvorená podľa rôznych pravidiel v rôznych prostrediach, rozlíšenie modulu rieši tento rozdiel). Ak používate path.resolve, musíte to urobiť vyžadovať cesta Modul uzla v hornej časti webpack.config.js súbor.

    3. Pridajte nakladače

    na pridajte nakladače, musíte definovať modul vlastnosť. Nižšie pridáme babel-nakladače to vám umožní bezpečne používať funkcie ECMAScript 6 vo vašich súboroch JS:

     const path = vyžaduje ("cesta"); module.exports = entry: "./src/script.js", výstup: filename: "bundle.js", cesta: path.resolve (__dirname, 'dist'), modul: rules: [ : /\.js$/, vylúčiť: / (node_modules | bower_components) /, použite: loader: "babel-loader", možnosti: prednastavenia: ["env"]]; 

    Konfigurácia sa môže zdať ťažké, ale je to len kopírovanie Babelova dokumentácia nakladača. Väčšina nakladačov je vybavená súborom readme alebo nejakou dokumentáciou, takže môžete takmer vždy vedieť, ako ich správne nakonfigurovať. Dokumenty Webpack majú tiež stránku, ktorá vysvetľuje ako nakonfigurovať module.rules.

    Môžete pridať ako mnoho nakladačov, ako potrebujete, Tu je celý zoznam. Upozorňujeme, že je tiež potrebné nainštalujte každý nakladač s npm aby ich fungovali. Pre nakladač Babel potrebujete nainštalovať potrebné balíky uzlov s npm:

     npm nainštalovať --save-dev babel-loader babel-core babel-preset-env webpack 

    Ak sa pozriete na svoje package.json súbor, uvidíte, že npm pridali tri balíčky súvisiace s balíkom Babel devDependencies vlastnosť, tieto sa postarajú o kompiláciu ES6.

    4. Pridajte doplnky

    na pridajte doplnky, musíte zadať plugins vlastnosť. Okrem toho musíte tiež vyžadovať zásuvné moduly jeden po druhom, pretože sú externými modulmi.

    V našom príklade pridáme dva pluginy Webpack: HTML Webpack plugin a Preload Webpack plugin. Webpack má nice ecosystem plugin, Tu môžete prezerať celý zoznam.

    Požadovať doplnky ako moduly uzlov, vytvorte dve nové konštanty: HtmlWebpackPlugin a PreloadWebpackPlugin a Použi vyžadujú () funkcie.

     const path = vyžaduje ("cesta"); const HtmlWebpackPlugin = vyžadovať ("html-webpack-plugin"); const PreloadWebpackPlugin = vyžaduje ("preload-webpack-plugin"); module.exports = entry: "./src/script.js", výstup: filename: "bundle.js", cesta: path.resolve (__dirname, 'dist'), modul: rules: [ : / / node_modules | bower_components), použite: loader: "babel-loader", možnosti: presets: ["env"], pluginy: [new HtmlWebpackPlugin (), nový PreloadWebpackPlugin ()]; 

    Rovnako ako v prípade nakladačov, musíte tiež inštalujte pluginy Webpack s npm. Ak chcete nainštalovať dva pluginy v príklade, spustite nasledovné dva príkazy vo vašom príkazovom riadku:

     npm nainštalovať html-webpack-plugin -save-dev npm nainštalovať --save-dev preload-webpack-plugin 

    Ak skontrolujete svoje package.json súbor teraz, uvidíte, že npm pridali dva doplnky do priečinka devDependencies vlastnosť.

    Spustite Webpack

    na vytvorte strom závislostí a výstup zväzku, spusťte na príkazovom riadku nasledujúci príkaz:

     WebPack 

    Zvyčajne trvá jednu alebo dve minúty Webpack na vybudovanie projektu. Keď skončíte, u CLI sa zobrazí podobná správa:

    Ak všetko šlo správne Webpack vytvoril a dist zložka v koreni vášho projektu a umiestnili dve zväzky súborov (bundle.js a index.html) vnútri.

    Github repo

    Ak chcete odhlásiť, prevziať alebo rozdeliť celý projekt, pozrite si naše repo Github.