# Minificare e unire CSS, JavaScript e HTML

> I file statici e le risposte HTML vengono minificati automaticamente; usa MERGE() per servire più file come uno solo e le impostazioni $minify per disattivarlo.

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

Total.js minifica ciò che serve senza alcun passaggio di build. Un file `.css` o `.js` di `public/` viene inviato senza commenti e spazi bianchi (il codice non viene rinominato né ristrutturato, solo compattato), e una stringa inviata con `$.html()` o una vista renderizzata perde i commenti HTML e gli spazi ripetuti vengono ridotti. Un file il cui nome contiene `.min.` (come `library.min.js`) è considerato già minificato e viene inviato così com'è.

Tre impostazioni del file `config` lo controllano, tutte `true` per impostazione predefinita: `$minifyjs`, `$minifycss` e `$minifyhtml`. Imposta una a `false` per servire quel tipo senza modifiche, utile quando fai il debug nel browser.

`MERGE(url, file1, file2, ...)` registra un file virtuale che è la concatenazione, minificata, dei file indicati. Il browser fa una richiesta invece di molte. I percorsi dei file sono URL della cartella `public/`.

```css public/css/app.css
/* the page style */
body {
	margin: 0;
	color: #000000;
}
```

```js public/js/app.js
// greeting
function hello(name) {
	var message = 'Hello ' + name;
	return message;
}
```

```js public/js/library.min.js
function   untouched ( ) { return  1 }
```

```js public/js/two.js
function two() { return 2; }
```

```js controllers/minify.js
exports.install = function() {
	ROUTE('GET /page/', page);
	MERGE('/all.js', '/js/app.js', '/js/two.js');
};

function page($) {
	$.html('<!DOCTYPE html>\n<html>\n  <body>\n    <!-- a note -->\n    <p>  Hello   world  </p>\n  </body>\n</html>');
}
```
