# Caricare le risorse dell'applicazione e evitare le sorprese del pacchetto di runtime

> Eseguire LOAD in un processo separato e verificare NPMINSTALL riutilizzo di un pacchetto già disponibile senza accesso alla rete.

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

`LOAD(types, [callback], [clear=true])` è il caricatore dell'applicazione. `types` è un array o un elenco separato da virgole di gruppi di risorse (come `config`, `definitions`, `controllers`, `actions`, `modules`, `resources`, `jsonschemas`, `flowstreams`). Senza elenco carica i normali gruppi dell'applicazione. Estrae prima i bundle e cancella per impostazione predefinita i file temporanei. Usalo in uno script autonomo quando ti servono le definizioni dell'applicazione senza avviare un listener HTTP; non chiamarlo ripetutamente in un gestore di richieste.

`NPMINSTALL(name, [callback])` controlla il pacchetto sotto `CONF.$nodemodules`: una versione corrispondente già installata ritorna senza eseguire npm. Altrimenti vi invoca `npm install`. Il nome deve essere un valore fisso e fidato dell'applicazione, mai un input della richiesta. Distribuisci le dipendenze tramite un manifest di pacchetti o un lockfile fissati quando la riproducibilità conta. Il test qui sotto copre solo il ramo del pacchetto installato: non scarica, aggiorna né certifica alcun pacchetto di terze parti.

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