# Vyplňte aplikácie a vyhnite sa prekvapeniam balíka

> Spustiť LOAD v samostatnom procese a overiť NPMINSTALL opätovné použitie už dostupného balíka bez prístupu k sieti.

Framework: total5
Product: Total.js 5 (total5@0.0.19)
Language: sk
Content-SHA256: 74c3eac9f037832a4815b28ab2a57761dceb7860c139de39beea9c904061282a
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: total5-installed@total5@0.0.19
Review: not-recorded

`LOAD(types, [callback], [clear=true])` je loader aplikácie. `types` je pole alebo zoznam skupín zdrojov oddelený čiarkami (napríklad `config`, `definitions`, `controllers`, `actions`, `modules`, `resources`, `jsonschemas`, `flowstreams`). Bez zoznamu načíta bežné skupiny aplikácie. Najprv extrahuje bundle a predvolene vyčistí dočasné súbory. Použite ho v samostatnom skripte, keď potrebujete definície aplikácie bez spustenia HTTP listenera; nevolajte ho opakovane v handleri požiadavky.

`NPMINSTALL(name, [callback])` skontroluje balík v `CONF.$nodemodules`: už nainštalovaná zodpovedajúca verzia sa vráti bez spustenia npm. Inak tam spustí `npm install`. Názov musí byť dôveryhodná pevná hodnota aplikácie, nikdy vstup požiadavky. Keď záleží na reprodukovateľnosti, nasaďte závislosti cez pripnutý manifest balíkov alebo lockfile. Test nižšie pokrýva iba vetvu nainštalovaného balíka: nesťahuje, neaktualizuje ani necertifikuje žiadny balík tretej strany.

```js controllers/loading.js
exports.install = function() {
	ROUTE('GET /loader-contract/', function($) { $.json({ available: typeof LOAD === 'function' && typeof NPMINSTALL === 'function' }); });
};
```
