Agora é só ESM.
(antfu.me)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.