npm

nodedepstestsbuildsbuilds2coveragelicensesPR's Vítejte

velikost instalace

Webpack je bundler modulů. Jeho hlavním účelem je svazovat soubory JavaScriptu pro použití v prohlížeči, je však schopen transformovat, svazovat nebo balit téměř jakýkoli zdroj nebo prostředek.

Obsah

  1. Instalace
  2. Úvod
  3. Koncepce
  4. Podpora
  5. Podpora
  6. Jádro týmu
  7. Sponzoring
  8. Premium Partneři
  9. Další podporovatelé a sponzoři
  10. Zlatí sponzoři
  11. Stříbrní sponzoři
  12. Bronzoví sponzoři
  13. Podporovatelé
  14. Speciální poděkování

Instalovat

Instalace pomocí npm:

npm install --save-dev webpack

Instalace pomocí yarn:

yarn add webpack --dev

Úvod

webpack je bundler pro moduly. Jeho hlavním účelem je svazovat soubory JavaScriptu pro použití v prohlížeči, nicméně je také schopen transformovat, svazovat nebo zabalit téměř jakýkoli zdroj nebo prostředek.

TL;DR

  • Svazuje moduly ES, CommonJS a moduly AMD (i kombinované).
  • Může vytvořit jeden svazek nebo více svazků, které se za běhu asynchronně načítají (aby se snížila počáteční doba načítání).
  • Závislosti se řeší během kompilace, čímž se snižuje velikost za běhu.
  • Zálohovače mohou při kompilaci předzpracovávat soubory, např. TypeScript na JavaScript, řetězce Handlebars na zkompilované funkce, obrázky na Base64 atd.
  • Vysoce modulární systém zásuvných modulů, který umožňuje provádět cokoli dalšího, co vaše aplikace vyžaduje.

Začínáme

Podívejte se na stručného průvodce webpackem a další průvodce.

Kompatibilita s prohlížeči

webpack podporuje všechny prohlížeče, které jsou kompatibilní s ES5 (IE8 a nižší nejsou podporovány).webpack také potřebuje Promise pro import() a require.ensure(). Pokud chcete podporovat starší prohlížeče, budete muset před použitím těchto výrazů načíst polyfill.

Koncepty

Zásuvné moduly

webpack má bohaté zásuvné rozhraní. Většina funkcív rámci samotného webpaku používá toto rozhraní zásuvných modulů. Díky tomu je webpack velmi flexibilní.

Název Stav Velikost instalace Popis
mini-css-extract-plugin mini-css-npm mini-css-size Extrahuje CSS do samostatných souborů. Vytvoří CSS soubor pro každý JS soubor, který obsahuje CSS.
compression-webpack-plugin compression-npm compression-size Připraví komprimované verze prostředků, aby je mohl obsluhovat pomocí Content-Encoding
html-webpack-.plugin html-plugin-npm html-plugin-size Zjednodušuje vytváření souborů HTML (index.html) pro obsluhu vašich balíčků

Zavaděče

webpack umožňuje používat zavaděče pro předzpracování souborů. To umožňuje vytvářet svazkyjakékoli statické zdroje daleko nad rámec JavaScriptu. Můžete si snadno napsat vlastní loadery pomocí Node.js.

Loadery se aktivují pomocí předpon loadername! v příkazech require(),nebo se automaticky aplikují pomocí regexu z konfigurace webpaketu.

Soubory

Název Stav Velikost instalace Popis
raw-loader raw-npm raw-size Načítá surový obsah souboru (utf-8)
val-loader val-npm val-size Vykonává kód jako modul a považuje export za kód JS
url-loader url-npm url-size Funguje jako zavaděč souborů, ale může vrátit datový url, pokud je soubor menší než limit
file-loader file-npm file-size Vysílá soubor do výstupní složky a vrací (relativní) url

JSON

.

Název Stav Velikost instalace Popis
cson-npm cson-size Naloží a transponuje soubor CSON

Transpirování

.

Název Stav Velikost instalace Popis
babel-npm babel-size Načítá kód ES2015+ a transplikuje do ES5 pomocí Babel
traceur-npm traceur-size Načítá kód ES2015+ a transplikuje do ES5 pomocí Traceur
type-npm type-size Přečte TypeScript jako JavaScript
coffee-npm coffee-size Načítá CoffeeScript jako JavaScript

Šablonování

Název Stav Velikost instalace Popis
html-npm html-size Exportuje HTML jako řetězec, vyžaduje odkazy na statické zdroje
pug-npm pug-size Načítá šablony Pug a vrací funkci
md-npm md-size Kompiluje Markdown do HTML
posthtml-npm posthtml-size Naloží a transformuje HTML soubor pomocí PostHTML
hbs-npm hbs-size Kompiluje Handlebars do HTML

Styling

Název Stav Velikost instalace Popis
<style> styl-npm style-size Přidat exporty modulu jako styl do DOM
css-npm css-size Naloží soubor CSS s vyřešenými importy a vrátí kód CSS
bez-npm less-size Načte a zkompiluje soubor LESS
sass-npm sass-size Naloží a zkompiluje soubor Sass/SCSS
stylus-npm stylus-size Naloží a zkompiluje soubor Stylus
postcss-npm postcss-size Načítá a transformuje soubor CSS/SSS pomocí PostCSS

Frameworks

.

Název Stav Velikost instalace Popis
vue-npm vue-size Načítá a kompiluje komponenty Vue
polymer-npm polymer-size Zpracování HTML & CSS pomocí zvoleného preprocesoru a require() webových komponent jako modulů první třídy
angular-npm angular-size Načítá a kompiluje komponenty Angular 2
riot-npm riot-size Riot official webpack loader

Výkon

webpack používá asynchronní I/O a má více úrovní cachování. Díky tomu je webpack rychlýa neuvěřitelně rychlý při inkrementálních kompilacích.

Formáty modulů

webpack podporuje moduly ES2015+, CommonJS a AMD již z výroby. Provádí chytrou statickou analýzu AST vašeho kódu. Má dokonce vyhodnocovací engine pro vyhodnocováníjednoduchých výrazů. Díky tomu můžete hned po vybalení podporovat většinu existujících knihoven.

Dělení kódu

webpack umožňuje rozdělit vaši kódovou základnu na více částí. Části se za běhu načítají asynchronně. Tím se zkrátí počáteční doba načítání.

Optimalizace

webpack umí provést mnoho optimalizací, aby snížil výstupní velikost vašehoJavaScriptu deduplikací často používaných modulů, minimalizací a tím, že vám dává plnou kontrolu nad tím, co se načte na začátku a co se načte za běhu pomocí rozdělení kódu. Pomocí hashů může také zajistit, aby vaše kousky kódu byly vhodné pro ukládání do mezipaměti.

Přispívání

Chceme, aby přispívání do WebPacku bylo zábavné, příjemné a vzdělávací pro každého a pro všechny. Máme živý ekosystém, který přesahuje rámec tohoto jediného repozitáře. Vítáme vás, když se podíváte do kteréhokoli repozitáře v naší organizaci nebo do organizace webpack-contrib, ve které se nacházejí všechny naše zavaděče a zásuvné moduly.

Příspěvky jdou daleko za požadavky na stažení a revize. Přestože vám rádi dáváme příležitost vtisknout WebPacku svou pečeť, jsme nadšeni i z řady dalších příspěvků, mezi které patří:

  • Aktualizace dokumentace, vylepšení, návrhy nebo opravy chyb
  • Opravy pravopisu nebo gramatiky
  • README.md opravy nebo předělávky
  • Přidání jednotkových nebo funkčních testů
  • Probírání problémů na GitHubu – zejména určení, zda problém stále přetrvává nebo je reprodukovatelný.
  • Hledání #webpack na twitteru a pomoc někomu dalšímu, kdo potřebuje pomoc
  • Učení ostatních, jak přispívat do jednoho z mnoha repozitářů WebPacku!
  • Blogování, mluvení nebo vytváření návodů o jedné z mnoha funkcí webpaku.
  • Pomáhání ostatním v našem gitterovém kanálu webpaku.

Chcete-li začít, podívejte se na naši dokumentaci o přispívání.

Pokud máte obavy nebo nevíte, kde začít, můžete se vždy obrátit na Seana Larkina (@TheLarkInn) na Twitteru nebo jednoduše odeslat problém a správce vám pomůže poradit!

Na našem médiu jsme také zahájili seriál publikací nazvaný Průvodce přispěvatele webpackem. Uvítáme, když si ho přečtete a napíšete nám případné dotazy nebo odpovědi, pokud stále potřebujete pomoc.

Chcete mluvit o webpacku? Rádi si prohlédneme abstrakt vaší přednášky/CFP! Můžete ji poslat e-mailem na adresu webpack opencollective com a my vám můžeme dát rady nebo tipy!!!

Vytváření vlastních zásuvných modulů a zavaděčů

Pokud vytvoříte zavaděč nebo zásuvný modul, byli bychom <3 rádi, kdybyste ho dali jako open source a umístili na npm. Dodržujeme konvenci pojmenování x-loader, x-webpack-plugin.

Podpora

Považujeme webpack za nízkoúrovňový nástroj používaný nejen samostatně, ale i vrstvený pod dalšími úžasnými nástroji. Vzhledem ke své flexibilitě není webpack vždy nejjednodušším řešením základní úrovně, nicméně věříme, že je nejmocnější. Přesto vždy hledáme způsoby, jak tento nástroj vylepšit a zjednodušit, aniž by to bylo na úkor funkčnosti. Pokud máte nějaké nápady, jak toho dosáhnout, jsme jedno ucho!

Pokud teprve začínáte, podívejte se na naši novou stránku s dokumenty a koncepty. Ta obsahuje přehled na vysoké úrovni, který je skvělý pro začátečníky!!!

Hledáte dokumentaci k WebPacku 1? Podívejte se na starou wiki, ale mějte na paměti, že tato zastaralá verze již není podporována.

Pokud chcete o něčem diskutovat nebo jen potřebujete pomoc, zde je naše místnost Gitter, kde se vždy najdou jedinci, kteří chtějí pomoci!

Pokud máte stále potíže, budeme rádi, když položíte dotaz na StackOverflow se značkou webpack. Je mnohem snazší odpovídat na otázky, které obsahují váš webpack.config.js a příslušné soubory! Takže pokud je můžete poskytnout, budeme vám nesmírně vděční (a s větší pravděpodobností vám pomůžeme najít odpověď!)

Pokud jste zdatní na Twitteru, můžete napsat svůj dotaz na Twitter #webpack a někdo by se vám měl ozvat a pomoci také.

Pokud jste objevili 🐜 nebo máte návrh na funkci, neváhejte vytvořit problém na Githubu.

Licence

Stav FOSSA

Jádro týmu


Tobias Koppers

Jádro

Zakladatel. WebPacku


Johannes Ewald

Loadery & Zásuvné moduly

Předchůdce WebPacku


Sean T. Larkin

Vztahy s veřejností

Zakladatel základního týmu


Kees Kluskens

Vývoj

.

Sponzor

Sponzorování

Většina členů základního týmu, přispěvatelů balíku Webpack a přispěvatelů v ekosystému dělá tuto práci s otevřeným zdrojovým kódem ve svém volném čase. Pokud používáte webpack k vážným úkolům a chtěli byste, abychom do něj investovali více času, přispějte. Tento projekt zvýší i váš příjem/produktivitu. Zrychluje vývoj a aplikace a snižuje potřebnou šířku pásma.

Takto využíváme dary:

  • Umožnit týmu jádra pracovat na WebPacku
  • Poděkovat přispěvatelům, pokud investovali velké množství času do přispívání
  • Podpořit projekty v ekosystému, které mají pro uživatele velkou hodnotu
  • Podpořit projekty, které jsou nejvíce hlasovány (work in progress)
  • Náklady na infrastrukturu
  • Poplatky za manipulaci s penězi

Prémioví partneři

Další podporovatelé a sponzoři

Předtím jsme začali používat OpenCollective, byly dary poskytovány anonymně. Nyní, když jsme přešli na tento systém, bychom rádi ocenili tyto sponzory (a ty, kteří nadále přispívají pomocí OpenCollective). Pokud jsme někoho vynechali, pošlete nám prosím PR a my vás do tohoto seznamu přidáme.

AngularMoonMailMONEI

Zlatí sponzoři

Staňte se zlatým sponzorem a získejte své logo v našem README na Githubu s odkazem na vaše stránky.

Stříbrní sponzoři

Staňte se stříbrným sponzorem a získejte své logo na našem README na Githubu s odkazem na vaše stránky.

Bronzoví sponzoři

Staňte se bronzovým sponzorem a získejte své logo na našem README na Githubu s odkazem na vaše stránky.

Podporovatelé

Staňte se podporovatelem a získejte svůj obrázek na našem README na Githubu s odkazem na vaše stránky.

Zvláštní poděkování patří

(v chronologickém pořadí)

  • @google za Google Web Toolkit (GWT), jehož cílem je kompilovat jazyk Java do jazyka JavaScript. Obsahuje podobné dělení kódu jako webpack.
  • @medikoo pro modules-webmake, což je podobný projekt. webpack vznikl, protože jsem chtěl Code Splitting pro modules-webmake. Zajímavé je, že otázka Code Splitting je stále otevřená (díky také @Phoscur za diskusi).
  • @substack pro browserify, což je podobný projekt a zdroj mnoha nápadů.
  • @jrburke pro require.js, což je podobný projekt a zdroj mnoha nápadů.
  • @defunctzombie za specifikaci browser-field, která zpřístupňuje moduly pro node.js, browserify a webpack.
  • Každý první uživatel webpacku, který přispěl do webpacku psaním issues nebo PR. Ovlivnili jste směr…
  • @shama, @jhnns a @sokra za udržování tohoto projektu
  • Každý, kdo napsal zavaděč pro webpack. Jste ekosystém…
  • Všichni, které jsem tu zapomněl zmínit, ale také ovlivnili webpack.

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.