WebApp_builder/README.md
2020-07-03 09:04:40 +02:00

73 lines
3.3 KiB
Markdown

# WebApp_builder
Skript pro sestavování webových aplikací pro ESP8266/ESP32. Používá se jako Git submodul u projektu.
## Návod k použití
Pro svoji práci používá soubor `project.json`, který obsahuje parametry pro sestavení. Povinná sekce je sekce `build`, která musí obsahovat následující:
* `approotdir` - cesta ke kořenovému adresáři projektu
```json
"approotdir":"./",
```
* `outputdir` - cesta k adresáři, do kterého je umístěna sestavená verze projektu bez použití komprese souborů (určena pro kontrolu a případné ladění na PC)
```json
"outputdir":"./dist/",
```
* `datadir` - cesta k adresáři, do kterého je generovaný výsledný obsah včetně případné komprese souborů
```json
"datadir":"../AZP_IoT_PIO/data/",
```
* `flist` - jméno souboru s obsahem webu pro případnou automatickou aktualizaci ze zařízení. Není-li uvedeno, seznam se negeneruje.
```json
"flist": "flist.txt",
```
* `combine` - seznam souborů, vzniklých kombinací (spojením) souborů jiných. Určeno pro minimalizaci současně stahovaných souborů.
```json
"combine": [
{"name": "js/app.js",
"items":[
"js/l10n/l10n.js",
"js/drooltip/package/js/build/drooltip.js",
"js/MsgPop/js/msgPop.js",
"js/sparkline/sparkline.js",
"js/es6-promise.auto.min.js",
"js/SweetAlert2/dist/sweetalert2.min.js",
"js/menu.js",
"js/app.js"
]
}
],
```
* `copy` - seznam souborů a adresářů pro vytváření finální aplikace, obashuje také příznaky pro kompresi
```json
"copy": [
{"src":"img/","dst":""},
{"src":"lang/","dst":""},
{"src":"html/favicon.png","dst":"favicon.png"},
{"src":"html/index.htm","dst":"index.htm","compress": true,"istemplate":true,"flistforce":true},
{"src":"html/setup.htm","dst":"setup.htm","compress": true,"istemplate":true,"flistforce":true},
{"src":"html/update.htm","dst":"update.htm","istemplate":true},
{"src":"devices/basic.json","dst":"basic.json","flistignore": true},
{"src":"devices/acdc.json","dst":"acdc.json","flistignore": true},
{"src":"devices/nmcu.json","dst":"nmcu.json","flistignore": true},
{"src":"devices/creas.json","dst":"creas.json","flistignore": true},
{"src":"js/microajax.js","dst":"","compress": true},
{"synthetic":true, "src":"js/app.js","dst":"","compress": true},
{"synthetic":true, "src":"css/app.css","dst":"","compress": true},
{"src":"html/.htaccess","dst":".htaccess","flistignore":true}
]
```
Doplňující parametry v sekci `copy` jsou:
* `compress` - při kopírování do `datadir` se použije komprese gzip a jméno souboru se doplní o příponu `.gz`.
* `istemplate` - při kopírování se použije textový template engine s nahrazováním - určeno pro uložení čísla verze
* `flistforce` - v souboru se seznamem se použije klíčové slovo `force`, které vynutí násilný přepis souboru v cílovém zařízení
* `flistignore` - soubor se neuloží do seznamu v souboru
* `syntehtic` - příznak, že soubor pro přesun vznikl pomocí sekce `combine` a nemá se tedy hledat ve zdrojových adresářích
K projektu ho většinou přidáváme pomocí
```sh
git submodule add https://git.xpablo.cz/xPablo.cz/WebApp_builder.git ./tools/generate
```