Kombinace frameworků Nette a Vue s build procesem na Node.js. Šablona je postavena na webpacku.
Webpack bundluje veškerý kód (výstupní soubor bundle.js
) a ukládá všechny assety projektu (např. obrázky) do složky www/assets
, které jsou následně využívány Nette aplikací. Díky balíčku oops/webpack-nette-adapter
je automaticky upravována cesta k bundle.js
podle toho, zda jsme zrovna ve vývojovém prostředí (tj. cesta k lokálnímu dev-serveru) nebo produkčním prostředí (např. web.cz/assets).
<script src='{webpack bundle.js}'></script>
Komponenty pochopitelně neumožňují použití šablonovacího systému latte . Vue má své vlastní funkcionality pro psaní šablon (jako např. filtry a direktivy) a není to tedy problém do doby, než potřebujeme vytvořit odkaz na presenter. Pro tyto účely obsahuje šablona komponentu NLink
:
<n-link to="Homepage:default" :params="{ id: 1, chapter: 7 }" anchor="heading">Odkaz</n-link>
Komponenta je poté přeložena na:
<a href="https://web.cz/homepage/default/1?chapter=7#heading">Odkaz</a>
Šablona obsahuje předpřipravený ApiPresenter
, jež je zodpovědný za generování odkazů pro komponentu NLink.vue
.
Je potřeba mít nainstalované běhové prostředí Node.js a správce balíčků NPM.
Obsah adresáře umístíme na náš lokální server (v MAMP/XAMP to je např. složka htdocs
) a v případě, že jsme obsah nenakopírovali do rootu této složky upravíme i směrování v souborech .htaccess
.
V konzoli si otevřeme rootovský adresář tohoto balíčku příkazem cd <vaše-cesta>/htdocs/www
a poté nainstalujeme všechny závislosti příkazem npm install
.
Projekt spouštíme příkazem npm run start
. Po spuštění bude webpack překládat naše .vue
komponenty a další kód do prohlížečem spustitelného JavaScriptu, který se nachází v www/assets/bundle.js
. Nette aplikaci spouštíme standardním způsobem na adrese localhostu.
Jméno | Odkaz |
---|---|
webpack-nette-adapter (server) | https://packagist.org/packages/oops/webpack-nette-adapter |
JQuery (klient) | https://github.com/jquery/jquery |
Vue (klient) | https://github.com/vuejs/vue |
nette-forms (klient) | https://www.npmjs.com/package/nette-forms |