前言
传闻在JavaScript与TypeScript武林中,曾有两大绝世心法:CommonJS与ESM。两派高手比肩而立,各自称霸一方,江湖一度风平浪静。
岂料,时局突变。ESM逐步修成阳春白雪之姿,登堂入室,成为主流正统。CommonJS则渐入下风,功力不济,逐渐退出主舞台。
话说某日,一位前端少侠夜观天象,打算在项目中配置vite.config.js或vite.config.ts。本欲安稳修炼,却因一招不慎,引入require触犯禁忌,顿时屏幕黑闪、终端哀鸣:
❌ 错误 [ERR_REQUIRE_ESM]:你这个 require,不识我这 ESM?
少侠眉头紧锁,神情恍惚,仿佛被“代码反噬术”击中,功力尽失,调试无门,怀疑人生。
幸好你手持此篇《ESM内功心法》,得以步入正道。待少侠修炼完毕,自可畅行江湖,无惧require的逆袭,从此bug不侵,打包如风。
简介
先来普及一门武林秘籍,分清两派修行之道:
- require():江湖流传多年的 CommonJS 内功心法,招式老练,直击依赖要害,出招迅速,信手拈来。
- ESM(ECMAScript Module):新晋正统心法,W3C 亲授,讲究模块隔离、按需异步、规范至上,是未来之光、江湖正道。
自 Node.js 12 起(尤其 Node 14 以后ÿ