Modules
- Módulos nativos, alternativa a CommonJS y AMD
- Módulos pueden exportar múltiples valores (no cómo los otros tipos de módulos)
- Se analiza estáticamente para cargar dependencias
- Las dependencias se cargan asíncronamente, pero se puede optimizar con un "module bundler" (rollup or webpack)
// -------- jquery.js --------
export default function jQuery() {
/* code */
}
// -------- code.js --------
import $ from 'jquery';
$('body').addClass('yay');
// --------- http.js --------
export function get(url) {
/* code */
}
export function post(url, body) {
/* code */
}
// -------- code.js --------
import { get, post } from 'http';
import { TIMEOUT as HTTP_TIMEOUT } from 'http';
import * as http from 'http';
get('/my/url').then(function(result) {
/* code */
});
HTTP_TIMEOUT; // 1000;
http.post('/my/url', 'body');
Do the following katas to assure the understanding of Modules