「index.js」モジュールの解決 (格納フォルダーの指定) は、ES6 (ECMAScript 2015) モジュールの公式標準でサポートされていますか?
いいえ。ES2015 には、モジュール ローダーやモジュール識別子の解釈方法については何も含まれていません。
それとも、単に「カスタム」の Node.js/CommonJS トランスパイル動作ですか?
はい。モジュール解決アルゴリズムについては、ドキュメントを参照してください。関連部分:
require(X) from module at path Y
1. If X is a core module,
a. return the core module
b. STOP
2. If X begins with './' or '/' or '../'
a. LOAD_AS_FILE(Y + X)
b. LOAD_AS_DIRECTORY(Y + X)
3. LOAD_NODE_MODULES(X, dirname(Y))
4. THROW "not found"
[...]
LOAD_AS_DIRECTORY(X)
1. If X/package.json is a file,
a. Parse X/package.json, and look for "main" field.
b. let M = X + (json main field)
c. LOAD_AS_FILE(M)
2. If X/index.js is a file, load X/index.js as JavaScript text. STOP
3. If X/index.json is a file, parse X/index.json to a JavaScript object. STOP
4. If X/index.node is a file, load X/index.node as binary addon. STOP
すべてのブラウザでインポートの /index|/index.js 部分を省略することは可能ですか (モジュールがすべてのブラウザでサポートされる場合)?
ブラウザの実装が既存のモジュール ローダーとの最大の互換性を目指していることを願っていますが、現時点ではわかりません。ブラウザとは関係がないかもしれませんが、サーバーがモジュール識別子を解決する方法とは関係ありません。私は最近開発をフォローしていないことを告白するので、他の洞察は大歓迎です:)