We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
このモジュールを、ESM対応にする。
node.js v12以降、es modules(以下ESM)が標準サポートとなった。
CJSとESMのそれぞれのバイナリをTypeScriptソースから出力する。 package.jsonにそれぞれのエントリーポイントを記述し、モジュール利用者が自由に選択可能とする。
https://github.com/MasatoMakino/gulptask-ejs/tree/dual-package
現状で解決できていない問題点を挙げる。これらの問題が解決したら、開発ブランチをmainブランチにマージする。
import構文では、ファイル拡張子が必須となる。 https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/import
TypeScriptのimport構文では拡張子が省略されるため、整合性がとれない。 配布用のバイナリーはrollup.jsを利用し巻き上げる。
CJSからESMを呼び出す場合、dynamic importが推奨されている。 https://nodejs.org/api/esm.html#esm_import_expressions globby v12.0.0のようにESMしか提供しないモジュールをCJSから呼び出すには、dynamic importを利用するしかない。
しかし、現状のTypeScriptでは、dynamic importをrequireに変換してしまう。 microsoft/TypeScript#43329
この問題は将来のTypeScriptで解決される予定。
The text was updated successfully, but these errors were encountered:
https://devblogs.microsoft.com/typescript/announcing-typescript-4-7-beta/ TypeScript 4.7でモジュールタイプ"nodenext"が追加される予定
Sorry, something went wrong.
CLIを追加したため、ESMへの移行メリットが減少した。 外部から呼び出すのではなく、npmスクリプト内で完結するため。
Pure ESMモジュールに変更する。 呼び出しは原則CLIとする。
MasatoMakino
Successfully merging a pull request may close this issue.
目標
このモジュールを、ESM対応にする。
背景
node.js v12以降、es modules(以下ESM)が標準サポートとなった。
手法
CJSとESMのそれぞれのバイナリをTypeScriptソースから出力する。
package.jsonにそれぞれのエントリーポイントを記述し、モジュール利用者が自由に選択可能とする。
関連ブランチ
https://github.com/MasatoMakino/gulptask-ejs/tree/dual-package
問題点
現状で解決できていない問題点を挙げる。これらの問題が解決したら、開発ブランチをmainブランチにマージする。
importの拡張子
import構文では、ファイル拡張子が必須となる。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/import
TypeScriptのimport構文では拡張子が省略されるため、整合性がとれない。
配布用のバイナリーはrollup.jsを利用し巻き上げる。
dynamic import
CJSからESMを呼び出す場合、dynamic importが推奨されている。
https://nodejs.org/api/esm.html#esm_import_expressions
globby v12.0.0のようにESMしか提供しないモジュールをCJSから呼び出すには、dynamic importを利用するしかない。
しかし、現状のTypeScriptでは、dynamic importをrequireに変換してしまう。
microsoft/TypeScript#43329
この問題は将来のTypeScriptで解決される予定。
The text was updated successfully, but these errors were encountered: