Vstupní soubory
Webpack náš kód začíná zpracovávat s nějakého vstupního souboru, popřípadě i více vstupních souborů. Definujeme je pomocí vlastnosti entry.
Jeden vstupní soubor
Pokud máme jen jeden vstupní soubor, tak k němu můžeme vlastnosti entry předat cestu jako řetězec.
module.exports = {
entry: "./src/index.js"
}
Předchozí kód je zkratkou pro tuto syntaxy:
module.exports = {
entry: {
main: "./src/index.js"
}
}
Pokud máme více samostatných souborů a chtěli bychom je sjednodit do jednoho, tak můžeme vlastnosti entry předat pole cest k těmto souborům.
module.exports = {
entry: ["./src/1.js", "./src/2.js"]
}
Více vstupních souborů
Pokud chceme definovat více vstupních souborů, tak musíme použít objektovou syntaxy. Následující konfigurace vygeneruje soubor main.js a app.js.
module.exports = {
entry: {
main: "./main.js",
app: "./src/application.js"
}
}
Nastavení vstupních souborů
Při definování vstupních souborů jim můžeme nastavit pár možností. Pokud je chceme nastavit, tak musíme vstupní soubor specifikovat následujícím způsobem:
module.exports = {
entry: {
main: {
import: "./src/index.js", // cesta ke vstupnímu souboru
filename: "app.js" // výsledný soubor bude mít název app.js
}
}
}
U vstupních souborů můžeme nastavit tyto možnosti:
- dependOn - Vstupní soubory, na kterých vstupní soubor závisí. Musejí být načteny před tímto vstupním souborem.
- filename - Název výsledného souboru.
- import - Cesta k vstupnímu souboru/souborům.
- library - Tuto možnost můžeme použít, pokud děláme nějakou knihovnu. Více zde.
- runtime - Nevím k čemu toto nastavení slouží. Více v dokumentaci.
- publicPath - Nevím k čemu toto nastavení slouží. Více v dokumentaci.
U nastavení filename se hodí zmínit, že můžeme do názvu souboru umístit hash, který se vytvoří podle obsahu souboru. Hodí se to pro produkci, abychom zabránili tomu, že uživatel bude mít v prohlížeči zacachovanou starou verzi souboru i když na serveru je k dispozici nová. Následující ukázka ukazuje jak to nastavit:
module.exports = {
entry: {
main: {
import: "./src/index.js",
filename: "[name].[contenthash].js"
}
}
}
// název výsledného souboru bude například index.4d9993a9b28396ceee7c.js