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
初めまして、https://blog.s2n.tech/articles/dont-use-moduleresolution-node という記事を読みました。 とてもわかりやすかったです! 👍
一点記事の中で不正確だと思われる記述がありましたので、ここで報告いたしします。
一つ注意したいのが、このフィールドは CommonJS でのみ使用され、ES Modules では使用されません。
と書かれていますが、ESMでもmainフィールドは基本使用されます。 これはNode.jsのESMでのモジュール解決の仕様のPACKAGE_RESOLVEの11.内の6.が該当箇所です。
PACKAGE_RESOLVE
実際にその挙動は下の手順で確かめることができます。
pkg
npm i
node index.js
ESMでもmainフィールドは使用されますが、正確にはパッケージのトップレベルにあるpackage.jsonのもののみ使用されます。(CJSではパッケージのトップレベルでないpackage.jsonも使用される) これはCJSのモジュール解決の仕様でのLOAD_AS_DIRECTORY内で、パッケージ直下かどうかにかかわらずpackage.jsonのmainフィールドを利用する処理があることからわかります。 こちらのほうはかなり細かい話なので記事では触れなくても問題ないと思います。
package.json
LOAD_AS_DIRECTORY
The text was updated successfully, but these errors were encountered:
@sapphi-red 大変丁寧なご指摘ありがとうございます! 自分の方でも確認したところ,再現できたため 52e36b3 にて修正しました!ご確認いただけると幸いです。
Sorry, something went wrong.
確認いたしました。問題ないと思います!
No branches or pull requests
初めまして、https://blog.s2n.tech/articles/dont-use-moduleresolution-node という記事を読みました。
とてもわかりやすかったです! 👍
一点記事の中で不正確だと思われる記述がありましたので、ここで報告いたしします。
と書かれていますが、ESMでもmainフィールドは基本使用されます。
これはNode.jsのESMでのモジュール解決の仕様の
PACKAGE_RESOLVE
の11.内の6.が該当箇所です。実際にその挙動は下の手順で確かめることができます。
pkg
ディレクトリを開くnpm i
を実行node index.js
を実行補足:
ESMでもmainフィールドは使用されますが、正確にはパッケージのトップレベルにある
package.json
のもののみ使用されます。(CJSではパッケージのトップレベルでないpackage.json
も使用される)これはCJSのモジュール解決の仕様での
LOAD_AS_DIRECTORY
内で、パッケージ直下かどうかにかかわらずpackage.json
のmainフィールドを利用する処理があることからわかります。こちらのほうはかなり細かい話なので記事では触れなくても問題ないと思います。
The text was updated successfully, but these errors were encountered: