<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Esm on Commentary of Takao</title><link>https://takao.blog/zh/tags/esm/</link><description>Recent content in Esm on Commentary of Takao</description><generator>Hugo -- gohugo.io</generator><language>zh</language><copyright>Commentary of Takao</copyright><lastBuildDate>Wed, 15 Jul 2026 22:01:08 +0900</lastBuildDate><atom:link href="https://takao.blog/zh/tags/esm/index.xml" rel="self" type="application/rss+xml"/><item><title>Node.js 对需要 ESM 模块的稳定支持</title><link>https://takao.blog/zh/web/node-esm-require-support-stable/</link><pubDate>Wed, 05 Nov 2025 00:00:00 +0900</pubDate><guid>https://takao.blog/zh/web/node-esm-require-support-stable/</guid><description>&lt;img src="https://takao.blog/img/thumbnail/node-esm-require-support-stable-zh.png" alt="Featured image of post Node.js 对需要 ESM 模块的稳定支持" /&gt;&lt;h2 id="nodejs-对需要-esm-模块的稳定支持"&gt;Node.js 对需要 ESM 模块的稳定支持
&lt;/h2&gt;&lt;p&gt;多年来，Node.js 开发人员面临着痛苦的分歧：&lt;strong&gt;CommonJS&lt;/strong&gt; (CJS) 和 &lt;strong&gt;ES 模块&lt;/strong&gt; (ESM) 共存，但互操作性有限。 CJS 代码可以异步加载 &lt;code&gt;import()&lt;/code&gt; ESM 模块，但 &lt;code&gt;require()&lt;/code&gt;（CJS 核心的同步加载机制）根本无法加载 ESM。这迫使代码库迁移成为要么全有要么全无的事情。&lt;/p&gt;</description></item><item><title>Node.js 中的 ESM 与 CommonJS 互操作挑战</title><link>https://takao.blog/zh/web/node-esm-cjs-interoperability/</link><pubDate>Fri, 25 Jul 2025 00:00:00 +0900</pubDate><guid>https://takao.blog/zh/web/node-esm-cjs-interoperability/</guid><description>&lt;img src="https://takao.blog/img/thumbnail/node-esm-cjs-interoperability-zh.png" alt="Featured image of post Node.js 中的 ESM 与 CommonJS 互操作挑战" /&gt;&lt;h2 id="介绍"&gt;介绍
&lt;/h2&gt;&lt;p&gt;Node.js 自 v12 起就支持 ECMAScript 模块 (ESM)，但生态系统仍然深深植根于 CommonJS (CJS)。将两个模块系统混合在一个项目中——或者从 ESM 代码中使用 CJS 包——会引入围绕导出、默认导入和全局的微妙陷阱。本文绘制了互操作边界并提供了平滑迁移的具体策略。&lt;/p&gt;</description></item></channel></rss>