14 pontos por carnoxen 2025-02-10 | Ainda não há comentários. | Compartilhar no WhatsApp

Até pouco tempo atrás, eu era contra a forma como todas as bibliotecas JavaScript estavam sendo convertidas rapidamente para ESM. Como as tecnologias relacionadas a ESM e sua adoção vêm evoluindo dia após dia, agora eu realmente espero que todos os desenvolvedores migrem para ESM. Os motivos são os seguintes.

Motivos

  • Ferramentas já prontas
    • Surgiram muitas ferramentas que podem ajudar na transição para ESM, como Vite, ESLint e tsx.
    • Como não é fácil para o modelo tradicional de bibliotecas (CJS) depender do ESM, que é a abordagem mais moderna, precisamos seguir em frente pensando na evolução futura.
    • Nos Node.js mais recentes, foi desenvolvida uma forma de carregar bibliotecas ESM com a função require(), o que facilita ainda mais a adoção de ESM.
  • Problema do suporte duplo
    • Como as diferenças de projeto entre os dois modelos são significativas, a interoperabilidade cai bastante.
    • Isso cria o incômodo de o usuário ter que verificar manualmente se há suporte a ESM.
    • Como é preciso suportar os dois modelos, o tamanho do pacote fica muito maior.

Quando mudar?

  • Em pacotes novos, migre para ESM sem exceção.
  • No caso de bibliotecas voltadas para o navegador, é possível criar bundles mais leves.
  • Em programas CLI, isso também permite que seus usuários passem naturalmente para ESM.
  • Mas antes disso, é importante entender o estado das bibliotecas das quais você já depende e os requisitos dos usuários.

Quanto deve mudar?

Para analisar as dependências da biblioteca, criei o analisador de dependências. Nele, é possível ver o estado das bibliotecas das quais você depende e até o impacto de migrar para ESM.

Próximos passos

Pretendo converter gradualmente para ESM os pacotes que mantenho e examinar as dependências com mais detalhe. Também tenho várias ideias interessantes preparadas usando node-modules-inspector, para oferecer insights mais úteis e continuar ajudando a encontrar a melhor abordagem no futuro.

Estou ansioso por um ecossistema JavaScript/TypeScript mais leve, resiliente e otimizado. Espero que isso tenha ajudado.

Ainda não há comentários.

Ainda não há comentários.