# Remplissez les ressources d'application et évitez les surprises du pack de runtime

> Exécutez la charge dans un processus séparé et vérifiez NPMINSTALL réutiliser un paquet déjà disponible sans accès au réseau.

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

`LOAD(types, [callback], [clear=true])` est le chargeur de l'application. `types` est un tableau ou une liste séparée par des virgules de groupes de ressources (comme `config`, `definitions`, `controllers`, `actions`, `modules`, `resources`, `jsonschemas`, `flowstreams`). Sans liste, il charge les groupes normaux de l'application. Il extrait d'abord les bundles et efface par défaut les fichiers temporaires. Utilisez-le dans un script autonome quand vous avez besoin des définitions de l'application sans démarrer d'écouteur HTTP ; ne l'appelez pas à répétition dans un gestionnaire de requête.

`NPMINSTALL(name, [callback])` vérifie le paquet sous `CONF.$nodemodules` : une version correspondante déjà installée revient sans exécuter npm. Sinon il y invoque `npm install`. Le nom doit être une valeur fixe de l'application, de confiance, jamais une entrée de requête. Déployez les dépendances via un manifeste de paquets ou un lockfile épinglé quand la reproductibilité compte. Le test ci-dessous ne couvre que la branche du paquet installé : il ne télécharge, ne met à jour ni ne certifie aucun paquet tiers.

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