npm

nodedepstestsbuildsbuilds2coveragelicensesPR's tervetuloa

asennuskoko

webpack on moduulien niputtaja. Sen päätarkoitus on niputtaa JavaScript-tiedostoja käytettäväksi selaimessa, mutta se pystyy myös muuntamaan, niputtamaan tai paketoimaan lähes minkä tahansa resurssin tai resurssin.

Sisällysluettelo

  1. Asennus
  2. Sisällysluettelo
  3. Käsitteet
  4. Yhteistyö
  5. Tuki
  6. Ydinjoukkue
  7. Sponsorointi
  8. Premium Partners
  9. Other Backers and Sponsors
  10. Gold Sponsors
  11. Silver Sponsors
  12. Bronze Sponsors
  13. Backers
  14. Erityiset kiitokset

Asenna

Asenna npm:llä:

npm install --save-dev webpack

Install with yarn:

yarn add webpack --dev

Johdanto

webpack on moduulien bundler. Sen päätarkoitus on niputtaa JavaScript-tiedostoja käytettäväksi selaimessa, mutta se pystyy myös muuntamaan, niputtamaan tai paketoimaan lähes minkä tahansa resurssin tai resurssin.

TL;DR

  • Niputtaa ES-moduulit, CommonJS:n ja AMD:n moduulit (myös yhdistettynä).
  • Voi luoda yhden nipun tai useita kappaleita, jotka ladataan asynkronisesti ajonaikana (vähentää alkulatausaikaa).
  • Riippuvuudet ratkaistaan kääntämisen aikana, mikä vähentää ajonaikaista kokoa.
  • Lataajat voivat esikäsitellä tiedostoja kääntämisen aikana, esim. TypeScript JavaScriptiksi, Handlebars-merkkijonot käännetyiksi funktioiksi, kuvat Base64:ksi jne.
  • Hyvin modulaarinen liitännäisjärjestelmä, jolla voi tehdä mitä tahansa muuta sovelluksesi vaatii.

Aloittaminen

Lue webpackin pika-aloitusopas ja muut oppaat.

Selainyhteensopivuus

webpack tukee kaikkia selaimia, jotka ovat ES5-yhteensopivia (IE8:aa ja sitä pienempiä selaimia ei tueta).webpack tarvitsee myös Promise import():lle ja require.ensure():lle. Jos haluat tukea vanhempia selaimia, sinun on ladattava polyfill ennen näiden lausekkeiden käyttöä.

Käsitteet

Liitännäiset

webpackilla on rikas liitännäisrajapinta. Suurin osa webpackin sisäisistä ominaisuuksistakäyttää tätä plugin-rajapintaa. Tämä tekee webpackista erittäin joustavan.

Name Status Asennuskoko Kuvaus
mini-css-extract-plugin mini-css-npm mini-css-size Purkaa CSS:n erillisiin tiedostoihin. Se luo CSS-tiedoston jokaista CSS:ää sisältävää JS-tiedostoa kohden.
compression-webpack-plugin compression-npm compression-size Valmistaa aineistoista pakattuja versioita, jotta ne voidaan tarjoilla sisällön koodauksen avulla
html-webpack…plugin html-plugin-npm html-plugin-size Yksinkertaistaa HTML-tiedostojen luomisen (index.html), jotta voit palvella pakettejasi

Kuormaajat

Webpackin avulla voit käyttää kuormaajia tiedostojen esikäsittelyyn. Näin voit niputtaajokaista staattista resurssia paljon muutakin kuin JavaScriptiä. Voit helposti kirjoittaa omatloaderisi käyttäen Node.js:ää.

Loaderit aktivoidaan käyttämällä loadername!-esimerkkejä require()-lausekkeissa,tai ne otetaan automaattisesti käyttöön regexin avulla webpack-konfiguraatiostasi.

Tiedostot

Nimi Tila Asennuskoko Kuvaus
raw-loader raw-npm raw-size Lataa tiedoston raakasisällön (utf-8)
val-loader val-npm val-size Toteuttaa koodin moduulina ja pitää vientiä JS-koodina
url-loader url-npm url-size Toimii kuten tiedostonlataaja, mutta voi palauttaa Data Url:n, jos tiedosto on rajaa pienempi
file-loader file-npm file-size Siirtaa tiedoston tulostuskansioon ja palauttaa (suhteellisen) url

JSON

.

Name Status Install Size Description
cson...npm cson-size Lataa ja transpiloi CSON-tiedoston

Transpilointi

Nimi Tila Asennuskoko Kuvaus
babel-npm babel-size Lataa ES2015+-koodia ja transpiloi ES5:een Babelin avulla
traceur-npm traceur-size Lataa ES2015+-koodia ja transpiloi ES5:een käyttäen Traceuria
type-npm type-size Lataa TypeScriptiä kuten JavaScriptiä
coffee-npm coffee-size Lataa CoffeeScriptiä kuin JavaScriptiä

Templating

Name Tila Asennuskoko Kuvaus
html-npm html-size Exports HTML as string, vaatii viittaukset staattisiin resursseihin
pug-npm pug-size Lataa Pug-mallit ja palauttaa funktion
md-npm md-size Kompiloi Markdown HTML:ksi
posthtml-npm posthtml-size Lataa ja muuntaa HTML-tiedoston PostHTML:n avulla
hbs-npm hbs-size Kompiloi Handlebars HTML:ksi

Styling

Name Tila Asennuskoko Kuvaus
<style> Tyyli-npm style-size Moduulin viennin lisääminen tyylinä DOMiin
css-npm css-size Lataa CSS-tiedoston ratkaistuilla importeilla ja palauttaa CSS-koodin
vapaasti-npm less-size Lataa ja kääntää LESS-tiedoston
sass-npm sass-size Lataa ja kääntää Sass/SCSS-tiedoston
stylus-npm stylus-size Lataa ja kääntää Stylus-tiedoston
postcss-npm postcss-size Lataa ja muuntaa CSS/SSS-tiedoston käyttäen PostCSS:ää

Frameworks

.

Name Status Install Size Description
vue-npm vue-size Lataa ja kääntää Vue-komponentit
polymer-npm polymer-size Käsittele HTML & CSS valitsemallasi esiprosessorilla ja require() Web-komponentit kuten ensimmäisen luokan moduulit
angular-npm angular-size Lataa ja kääntää Angular 2 -komponentit
riot-npm riot-size Riot official webpack loader

Suorituskyky

webpack käyttää asynkkaa I/O:ta ja siinä on useita välimuistitasoja. Tämä tekee webpackista nopean ja uskomattoman nopean inkrementaalisissa kompilaatioissa.

Moduulimuodot

webpack tukee ES2015+-, CommonJS- ja AMD-moduuleja suoraan laatikosta. Se tekee koodisi AST:stä nokkelaa tila-analyysiä. Siinä on jopa evaluointimoottori yksinkertaisten lausekkeiden evaluointia varten. Näin voit tukea useimpia olemassa olevia kirjastoja suoraan laatikosta.

Koodin jakaminen

webpackin avulla voit jakaa koodipohjan useisiin palasiin. Palaset ladataan asynkronisesti ajonaikana. Tämä vähentää alkuperäistä latausaikaa.

Optimoinnit

webpack voi tehdä monia optimointeja vähentääkseen JavaScriptiesi tulostuskokoa deduplikoimalla usein käytettyjä moduuleja, pienentämällä ja antamalla sinulle täydellisen kontrollin siitä, mitä ladataan aluksi ja mitä ladataan ajonaikana koodin jakamisen avulla. Se voi myös tehdä koodikappaleistasi välimuistiystävällisiä käyttämällä hasheja.

Osallistuminen

Tahdomme, että webpackiin osallistuminen on hauskaa, nautinnollista ja opettavaista kaikille. Meillä on elinvoimainen ekosysteemi, joka ulottuu tämän yhden repon ulkopuolelle. Toivotamme sinut tervetulleeksi tutustumaan mihin tahansa organisaatiomme arkistoon tai webpack-contrib-organisaatioon, jossa sijaitsevat kaikki lataajamme ja liitännäisohjelmamme.

Suoritukset menevät paljon pidemmälle kuin pull requestit ja commitit. Vaikka annamme mielellämme sinulle mahdollisuuden antaa leimasi webpackiin, otamme mielellämme vastaan myös monenlaisia muita kontribuutioita, kuten:

  • Dokumentaatiopäivitykset, parannukset, muotoilut tai bugikorjaukset
  • Kirjoitus- tai kielioppikorjaukset
  • README.md-korjaukset tai uudelleensuunnittelut
  • Yksikkö- tai toiminnallisten testien lisääminen
  • GitHub-ongelmien tutkiminen — erityisesti sen määrittäminen, onko ongelma edelleen olemassa tai toistettavissa.
  • #webpackin etsiminen twitterissä ja jonkun muun apua tarvitsevan auttaminen
  • Opetus muille, miten osallistua johonkin webpackin monista reposista!
  • Bloggaaminen, puhuminen tai opetusohjelmien luominen jostain webpackin monista ominaisuuksista.
  • Auttaessasi muita webpackin gitter-kanavallamme.

Aloittaaksesi katso dokumentaatiotamme osallistumisesta.

Jos olet huolissasi tai et tiedä mistä aloittaa, voit aina ottaa yhteyttä Sean Larkiniin (@TheLarkInn) Twitterissä tai yksinkertaisesti lähettää ongelman, jolloin ylläpitäjä voi opastaa sinua!

Olemme myös aloittaneet sarjan Medium-julkaisussamme nimeltä The Contributor’s Guide to webpack. Toivotamme sinut tervetulleeksi lukemaan sen ja lähettämään kysymyksiä tai vastauksia, jos tarvitset vielä apua.

Haluatko puhua webpackista? Tarkastaisimme mielellämme puheesi abstraktin/CFP:n! Voit lähettää sen sähköpostitse osoitteeseen webpack opencollective com ja voimme antaa vinkkejä tai vihjeitä!!!

Omien liitännäisten ja lataajien luominen

Jos luot lataajan tai liitännäisen, haluaisimme <3 että avaat sen avoimen lähdekoodin ja laitat sen npm:ään. Noudatamme x-loader, x-webpack-plugin nimeämiskonventiota.

Tuki

Pitämme webpackia matalan tason työkaluna, jota käytetään paitsi yksinään myös kerroksittain muiden mahtavien työkalujen alla. Joustavuutensa vuoksi webpack ei ole aina helpoin aloitusratkaisu, mutta uskomme kuitenkin, että se on tehokkain. Tästä huolimatta etsimme aina tapoja parantaa ja yksinkertaistaa työkalua toiminnallisuudesta tinkimättä. Jos sinulla on ideoita keinoista tämän saavuttamiseksi, olemme kuulolla!

Jos olet vasta aloittelemassa, vilkaise uutta docs and concepts -sivuamme. Siellä on korkean tason yleiskatsaus, joka on hyvä aloittelijoille!!!

Etsitkö webpack 1 -dokumentteja? Tutustu vanhaan wikiin, mutta huomaa, että tätä vanhentunutta versiota ei enää tueta.

Jos haluat keskustella jostain asiasta tai vain tarvitsette apua, tässä on Gitter-huoneemme, jossa on aina henkilöitä, jotka haluavat auttaa!

Jos sinulla on edelleen vaikeuksia, haluaisimme, että kirjoittaisit kysymyksen StackOverflow’hun webpack-tagilla. On paljon helpompi vastata kysymyksiin, jotka sisältävät webpack.config.js:n ja asiaankuuluvat tiedostot! Joten jos voit antaa ne, olisimme erittäin kiitollisia (ja todennäköisemmin auttaisimme sinua löytämään vastauksen!)

Jos osaat twitteriä, voit twiitata #webpack kysymyksesi ja jonkun pitäisi pystyä tavoittamaan ja auttamaan myös.

Jos olet löytänyt 🐜 tai sinulla on ominaisuusehdotus, voit vapaasti luoda ongelman Githubiin.

Lisenssi

FOSSA Status

Ydintiimi


Tobias Koppers

Ydintiimi

perustaja. of webpack


Johannes Ewald

Loaders & Plugins

Early adopter of webpack


Sean T. Larkin

Julkiset suhteet

Ydintiimin perustaja


Kees Kluskens

Kehitys

Kehitys

Sponsori

Sponsorointi

Pääosa ydintiimin jäsenistä, webpackin myötävaikuttajista ja ekosysteemin myötävaikuttajista tekevät tätä avoimen lähdekoodin työtä vapaa-ajallaan. Jos käytät webpackia johonkin vakavasti otettavaan tehtävään ja haluat, että panostamme siihen enemmän aikaa, lahjoita. Tämä projekti lisää myös sinun tulojasi/tuottavuuttasi. Se nopeuttaa kehitystä ja sovelluksia ja vähentää tarvittavaa kaistanleveyttä.

Näin käytämme lahjoitukset:

  • Mahdollistamme ydintiimin työskentelyn webpackin parissa
  • Kiitämme osallistujia, jos he ovat sijoittaneet paljon aikaa osallistumiseen
  • Tukemme ekosysteemissä olevia projekteja, joilla on suuri arvo käyttäjille
  • Tukemme projekteja, jotka ovat äänestetään eniten (työn alla)
  • Infrastruktuurikustannukset
  • Maksut rahankäsittelystä

Premium-kumppanit

Muut taustatukijat ja sponsorit

Ennen kuin aloimme käyttää OpenCollectivea, lahjoitukset tehtiin nimettöminä. Nyt kun olemme siirtyneet tähän, haluaisimme antaa tunnustusta näille sponsoreille (ja niille, jotka jatkavat lahjoittamista OpenCollectiven avulla). Jos joku on jäänyt huomaamatta, lähetä meille PR, niin lisäämme sinut tähän listaan.

AngularMoonMailMONEI

Kultaiset sponsorit

Tule kultaiseksi sponsoriksi, niin saat logosi README-julkaisuumme Githubissa linkin sivustollesi.

Hopeasponsorit

Tule hopeasponsoriksi ja saat logosi Githubin README-julkaisuun linkin sivustollesi.

Pronssisponsorit

Tule pronssisponsoriksi ja saat logosi Githubin README-julkaisuun linkin sivustollesi.

Tukijat

Tule tukijaksi ja saat kuvasi README:ssä Githubissa linkin sivustoosi.

Erityiskiitokset

(aikajärjestyksessä)

  • @google Google Web Toolkitista (GWT), jonka tarkoituksena on kääntää Java JavaScriptiksi. Siinä on samanlainen Code Splitting kuin webpackissa.
  • @medikoo for modules-webmake, joka on samanlainen projekti. webpack syntyi, koska halusin Code Splittingin modules-webmakeen. Mielenkiintoista on, että Code Splitting -kysymys on edelleen auki (kiitos myös @Phoscurille keskustelusta).
  • @substack browserify:lle, joka on samanlainen projekti ja monien ideoiden lähde.
  • @jrburke require:lle.js, joka on samanlainen projekti ja lähde monille ideoille.
  • @defunctzombie browser-field specistä, joka tekee moduuleja saataville node.js:lle, browserify:lle ja webpackille.
  • Kaikki varhaiset webpackin käyttäjät, jotka ovat vaikuttaneet webpackin kehitykseen kirjoittamalla issueja tai PReja. Te vaikutitte suuntaan…
  • @shama, @jhnns ja @sokra tämän projektin ylläpidosta
  • Kaikki, jotka ovat kirjoittaneet lataajan webpackille. Te olette ekosysteemi…
  • Kaikki, jotka unohdin mainita tässä, mutta jotka myös vaikuttivat webpackiin.

Vastaa

Sähköpostiosoitettasi ei julkaista.