Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Node.js 22 の変更点について

Support require()ing synchronous ESM graphs
This release adds require() support for synchronous ESM graphs under the flag --experimental-require-module.

If --experimental-require-module is enabled, and the ECMAScript module being loaded by require() meets the following requirements:

Explicitly marked as an ES module with a "type": "module" field in the closest package.json or a .mjs extension.
Fully synchronous (contains no top-level await).
require() will load the requested module as an ES Module, and return the module name space object. In this case it is similar to dynamic import() but is run synchronously and returns the name space object directly. We intend to eventually enable require(esm) by default in the future, without the flag.

この部分の解釈について意見をいただきたいです。

私の解釈

できるようになること

  • require(esm)という読み込みが可能になる
    • 現在はフラグを立てる必要があるが、将来的にはデフォルトで使用できるようになる

この変更による影響

  • 今までは、非同期的な読み込みはESM CJSともにimportで読み込むことができたが、同期的な読み込みはCJSがrequire()、ESMがawait importを使用していた。今回の変更により、同期的な読み込みはrequire()に統一することができる
    • ブラウザでは依然としてimportのみをサポートするため、どこでもrequire()が使用できるわけではない
0

Your answer might help someone💌