ESM-only时代:JavaScript模块化的未来已来?

2025-03-24
ESM-only时代:JavaScript模块化的未来已来?

本文探讨了JavaScript模块系统ESM(ECMAScript Module)的普及现状以及向ESM-only迁移的必要性。作者回顾了三年前关于同时发布CJS和ESM版本的观点,并阐述了如今转向ESM-only的理由。随着Vite等现代前端构建工具以及Nuxt、SvelteKit等框架的兴起,ESM已成为主流。Node.js对require() ESM的支持进一步消除了CJS与ESM互操作的障碍。虽然双格式发布(CJS/ESM)曾是过渡机制,但维护成本高,且存在互操作性和依赖解析问题。作者建议新项目直接采用ESM-only,并针对不同类型的项目(浏览器端、CLI工具等)给出了迁移建议。最后,作者介绍了其开发的Node Modules Inspector工具,用于分析项目依赖的ESM采用情况。