<?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 たかおの解説</title><link>https://takao.blog/ja/tags/esm/</link><description>Recent content in Esm on たかおの解説</description><generator>Hugo -- gohugo.io</generator><language>ja</language><copyright>たかおの解説</copyright><lastBuildDate>Sat, 13 Jun 2026 23:11:50 +0900</lastBuildDate><atom:link href="https://takao.blog/ja/tags/esm/index.xml" rel="self" type="application/rss+xml"/><item><title>Node.jsでESMをrequire可能にする仕様の安定化とエコシステムの変化</title><link>https://takao.blog/ja/web/node-esm-require-support-stable/</link><pubDate>Wed, 05 Nov 2025 00:00:00 +0900</pubDate><guid>https://takao.blog/ja/web/node-esm-require-support-stable/</guid><description>&lt;img src="https://takao.blog/img/thumnail.webp" alt="Featured image of post Node.jsでESMをrequire可能にする仕様の安定化とエコシステムの変化" /&gt;&lt;h2 id="nodejsでesmをrequire可能にする仕様の安定化とエコシステムの変化"&gt;Node.jsでESMをrequire可能にする仕様の安定化とエコシステムの変化
&lt;/h2&gt;&lt;p&gt;長年にわたり、Node.js開発者は&lt;strong&gt;CommonJS&lt;/strong&gt;（CJS）と&lt;strong&gt;ES Modules&lt;/strong&gt;（ESM）の間にある厄介な分断に直面してきました。CJSコードは&lt;code&gt;import()&lt;/code&gt;でESMモジュールを非同期に読み込めましたが、CJSの心臓部である同期的な&lt;code&gt;require()&lt;/code&gt;はESMをまったく読み込めませんでした。そのため、コードベースの移行は全か無かの対応を強いられていました。&lt;/p&gt;</description></item><item><title>Node.jsプロジェクトのESM移行における諸問題と相互互換性の確保</title><link>https://takao.blog/ja/web/node-esm-cjs-interoperability/</link><pubDate>Fri, 25 Jul 2025 00:00:00 +0900</pubDate><guid>https://takao.blog/ja/web/node-esm-cjs-interoperability/</guid><description>&lt;img src="https://takao.blog/img/thumnail.webp" alt="Featured image of post Node.jsプロジェクトのESM移行における諸問題と相互互換性の確保" /&gt;&lt;h2 id="はじめに"&gt;はじめに
&lt;/h2&gt;&lt;p&gt;Node.jsはv12からECMAScript Modules（ESM）をサポートしていますが、エコシステムの大部分は依然としてCommonJS（CJS）に依存しています。1つのプロジェクト内で両方のモジュールシステムを併用する、あるいはCJSパッケージをESMコードから利用する際には、エクスポートの解釈やグローバルの違いに起因する落とし穴が存在します。本記事ではその相互運用の境界を整理し、スムーズな移行のための具体的な戦略を提供します。&lt;/p&gt;</description></item></channel></rss>