Design Patterns

Module

É uma forma de organizar código em arquivos separados, reutilizando-os via exportação e importação.
Sem a necessidade de expor variáveis globais.
Já existia no ES5, mas ficou mais fácil no ES6.

Exportamos um código para torná-lo disponível para outros arquivos.
Importamos um código para que possamos utilizá-lo, obter acesso as suas variáveis e funções.

ES5 - Sintaxe CommonJS

Exportação

                                module.exports = {
                                    foo: function(){ return 'bar' },
                                    baz: 123
                                }
                            
Importação

                                const A = require('./A.js')
                                const foo = A.foo;
                                const baz = A.baz;
                            

ES6 - Sintaxe Import

Exportação

                                export function foo(){ return 'baz' };
                                export const baz = 123;
                            
Importação

                                import * as A from './A.js';
                                const foo = A.foo;
                                const baz = A.baz;
                            
Módulo em JavaScript - Sinaxe ES5 CommonJS versus Sintaxe ES6 Import

References