kb.erickguedes.com
JavaScript: Fundamentos para Web

Módulos e Ferramentas

Aula 8 de 8

Módulos ES6

Módulos permitem organizar código em arquivos independentes com escopo isolado.

Export e Import

// utils/formatacao.js
export function formatarMoeda(valor) {
  return new Intl.NumberFormat('pt-BR', {
    style: 'currency',
    currency: 'BRL'
  }).format(valor);
}

export function formatarData(data) {
  return new Intl.DateTimeFormat('pt-BR').format(new Date(data));
}

export default function log(mensagem) {
  console.log(`[LOG] ${new Date().toISOString()}: ${mensagem}`);
}
// app.js
import log, { formatarMoeda, formatarData } from './utils/formatacao.js';

import { formatarMoeda as moeda } from './utils/formatacao.js';

import * as fmt from './utils/formatacao.js';

console.log(moeda(1500));
console.log(formatarData('2026-01-15'));
log('Aplicacao iniciada');

Dynamic Import

async function carregarGraficos() {
  try {
    const modulo = await import('./utils/graficos.js');
    modulo.inicializarGrafico('canvas-principal');
  } catch (erro) {
    console.error('Falha ao carregar modulo de graficos:', erro);
  }
}

document.querySelector('#btn-grafico')
  .addEventListener('click', carregarGraficos);

Modulos no HTML

<script type="module" src="app.js"></script>

CommonJS vs ES Modules

// CommonJS (Node.js)
const soma = (a, b) => a + b;
module.exports = { soma, PI: 3.14 };

// index.cjs
const { soma } = require('./utils/matematica.cjs');
console.log(soma(2, 3));

// ES Modules (package.json: "type": "module")
// Usa import/export

Bundlers

Vite

npm create vite@latest meu-app -- --template vanilla
cd meu-app
npm install
npm run dev
npm run build
// vite.config.js
import { defineConfig } from 'vite';

export default defineConfig({
  build: {
    outDir: 'dist',
    sourcemap: true,
    minify: 'terser'
  }
});

npm Basico

# Iniciar projeto
npm init -y

# Instalar dependencia
npm install lodash

# Instalar dependencia de desenvolvimento
npm install --save-dev eslint

# Executar script
npm run build

# Scripts em package.json
"scripts": {
  "dev": "vite",
  "build": "vite build",
  "preview": "vite preview",
  "lint": "eslint src/"
}

Lab: Projeto com Modulos ES6

Crie um projeto com Vite, organize funcoes em modulos separados e use import/export.

npm create vite@latest calculadora -- --template vanilla
cd calculadora
npm install
npm run dev

Modulos ES6 sao o padrao moderno do JavaScript. Use import/export, Vite para desenvolvimento e npm para gerenciar dependencias.