0Pricing
JavaScript Academy · Aula

Resolução de módulos no Node e em empacotadores de navegador

Aprenda como as importações são resolvidas: especificadores relativos e simples, extensões de arquivos (.js/.mjs/.cjs), arquivos index e pontos de entrada simples de pacotes

Resolução de módulos no Node e em empacotadores de navegador é uma aula grátis de JavaScript Academy no CoddyKit. Esta é a aula 3 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de JavaScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de JavaScript Academy inclui 3 aulas no total.

Visão geral

Objetivo: entender como os caminhos de importação são resolvidos.

  • Especificadores relativos e sem prefixo
  • Use .js explícito (padrão seguro)
  • index.js em pastas
  • Pontos de entrada de pacotes (main/exports, visão geral)
Resolução de módulos no Node e em empacotadores de navegador — ilustração 1

Relativos e sem prefixo

As importações relativas começam com ./ ou ../. As importações sem prefixo apontam para pacotes instalados.

// Relative path imports start with ./ or ../
// Bare specifiers refer to packages installed (e.g., "lodash")
const examples = [
  "import { sum } from \\"./math.js\\";   // relative, file nearby",
  "import leftPad from \\"left-pad\\";   // bare, from node_modules",
  "import thing from \\"../lib/thing.js\\"; // parent folder"
];

console.log("specifiers:");
for (const line of examples) console.log(line);
Resolução de módulos no Node e em empacotadores de navegador — ilustração 2

As extensões são importantes

Adicione a extensão .js em ESM para evitar erros de resolução. Você também pode encontrar .mjs ou .cjs.

// Include file extensions for ESM (safe beginner habit)
const extTips = [
  "Good (ESM): import util from \\"./util.js\\"",
  "Also seen: .mjs for ESM files, .cjs for CJS files",
  "Avoid: import \\"./util\\" (may fail in Node/browsers)"
];

console.log("extensions:");
for (const t of extTips) console.log(t);
Resolução de módulos no Node e em empacotadores de navegador — ilustração 3

Pastas e index.js

As pastas geralmente expõem index.js. Ser explícito (.../index.js) é mais claro para iniciantes.

// If you import a folder, many setups look for index.js inside it
const folderExample = [
  "my-lib/",
  "  index.js",
  "  helpers/",
  "    index.js"
];

for (const l of folderExample) console.log(l);

// Typical imports
const dirImports = [
  "import main from \\"./my-lib/index.js\\";",
  "import alsoMain from \\"./my-lib/\\";        // some setups resolve to index.js",
  "import helper from \\"./my-lib/helpers/index.js\\";"
];

console.log("imports:");
for (const l of dirImports) console.log(l);
Resolução de módulos no Node e em empacotadores de navegador — ilustração 4

Pontos de entrada de pacotes

Os pacotes expõem pontos de entrada por meio de main/exports. As importações sem prefixo escolhem o arquivo correto para ESM ou CJS.

// Installed packages declare entry points in package.json
const pkgJson = [
  "{",
  "  \\"name\\": \\"tiny-lib\\",",
  "  \\"main\\": \\"dist/cjs/index.cjs\\",",
  "  \\"exports\\": {",
  "    \\".\\": { \\"import\\": \\"./dist/esm/index.js\\", \\"require\\": \\"./dist/cjs/index.cjs\\" }",
  "  }",
  "}"
];

console.log("package.json entry (example):");
for (const l of pkgJson) console.log(l);

// Importing a bare specifier will use these fields
console.log("import tiny-lib     -> resolves to ESM or CJS entry depending on environment");
Resolução de módulos no Node e em empacotadores de navegador — ilustração 5

Dicas e armadilhas

Dicas:

  • Prefira caminhos relativos com .js para arquivos locais.
  • Use importações sem prefixo somente para pacotes instalados.
  • Seja explícito com index.js para evitar ambiguidades.
  • No navegador, as importações devem ser URLs válidas (geralmente com extensões).
Resolução de módulos no Node e em empacotadores de navegador — ilustração 6

Quiz sobre o básico da resolução

Verificação rápida: caminho seguro para uma importação local.

Resolução de módulos no Node e em empacotadores de navegador — ilustração 7

Recapitulação

Recapitulação: arquivos locais → ./file.js. Pacotes → nomes sem prefixo. As pastas geralmente são resolvidas para index.js. Conhecer essas regras mantém as importações simples e previsíveis.

Resolução de módulos no Node e em empacotadores de navegador — ilustração 8

Perguntas Frequentes

A aula “Resolução de módulos no Node e em empacotadores de navegador” é grátis?

Sim — o texto completo de “Resolução de módulos no Node e em empacotadores de navegador” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de JavaScript Academy, atualize para CoddyKit PRO. O curso de JavaScript Academy inclui 3 aulas no total.

O que vou aprender em “Resolução de módulos no Node e em empacotadores de navegador”?

Aprenda como as importações são resolvidas: especificadores relativos e simples, extensões de arquivos (.js/.mjs/.cjs), arquivos index e pontos de entrada simples de pacotes Você pratica JavaScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar JavaScript Academy?

Nenhuma experiência prévia é necessária. JavaScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 3.

Quanto tempo leva a aula “Resolução de módulos no Node e em empacotadores de navegador”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de JavaScript Academy?

Sim. Cada aula de JavaScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Fundamentos de ESM — import/export, padrão versus nomeado
  2. Fundamentos de CommonJS — require/module.exports e exports
  3. Resolução de módulos no Node e em empacotadores de navegador
← Voltar para JavaScript Academy