# Carregar recursos de aplicação e evitar surpresas em pacotes de tempo de execução

> Execute o carregamento em um processo separado e confira a NPMINSTALL para reutilizar um pacote já disponível sem acesso à rede.

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

`LOAD(types, [callback], [clear=true])` é o carregador da aplicação. `types` é um array ou uma lista separada por vírgulas de grupos de recursos (como `config`, `definitions`, `controllers`, `actions`, `modules`, `resources`, `jsonschemas`, `flowstreams`). Sem lista carrega os grupos normais da aplicação. Extrai primeiro os bundles e limpa por omissão os ficheiros temporários. Use-o num script independente quando precisar das definições da aplicação sem iniciar um listener HTTP; não o chame repetidamente num manipulador de pedidos.

`NPMINSTALL(name, [callback])` verifica o pacote em `CONF.$nodemodules`: uma versão correspondente já instalada regressa sem executar o npm. Caso contrário invoca `npm install` aí. O nome tem de ser um valor fixo e de confiança da aplicação, nunca uma entrada de um pedido. Implante as dependências através de um manifesto de pacotes ou de um lockfile fixados quando a reprodutibilidade importa. O teste abaixo cobre apenas o ramo do pacote instalado: não descarrega, atualiza nem certifica nenhum pacote de terceiros.

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