# Load applicatiebronnen en vermijd runtime pakketverrassingen

> Voer LOAD in een afzonderlijk proces en controleer NPMINSTALL opnieuw gebruik van een al beschikbare pakket zonder netwerktoegang.

Framework: total5
Product: Total.js 5 (total5@0.0.19)
Language: nl
Content-SHA256: 3ff657e208223c906d062cc9a1ea18b68de315be780622786654886d58cd452f
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: total5-installed@total5@0.0.19
Review: not-recorded

`LOAD(types, [callback], [clear=true])` is de applicatielader. `types` is een array of kommagescheiden lijst van resourcegroepen (zoals `config`, `definitions`, `controllers`, `actions`, `modules`, `resources`, `jsonschemas`, `flowstreams`). Zonder lijst laadt hij de normale applicatiegroepen. Hij pakt eerst bundles uit en wist standaard tijdelijke bestanden. Gebruik hem in een zelfstandig script wanneer je applicatiedefinities nodig hebt zonder een HTTP-listener te starten; roep hem niet herhaaldelijk aan in een request-handler.

`NPMINSTALL(name, [callback])` controleert het pakket onder `CONF.$nodemodules`: een reeds geïnstalleerde overeenkomende versie keert terug zonder npm uit te voeren. Anders roept hij daar `npm install` aan. De naam moet een vertrouwde vaste applicatiewaarde zijn, nooit request-invoer. Implementeer afhankelijkheden via een vastgepind pakketmanifest of lockfile wanneer reproduceerbaarheid telt. De test hieronder dekt alleen de tak van het geïnstalleerde pakket: hij downloadt, upgradet of certificeert geen pakket van derden.

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