0Pricing
JavaScript Academy · レッスン

Nodeとブラウザのバンドラーにおけるモジュール解決

インポートが解決される仕組みを学びます。相対指定子とベア指定子、ファイル拡張子(.js/.mjs/.cjs)、indexファイル、基本的なパッケージのエントリポイントを扱います。

「Nodeとブラウザのバンドラーにおけるモジュール解決」はCoddyKit上の無料JavaScript Academyレッスンです。 これはレッスン3/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJavaScript Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 JavaScript Academyコースには全3レッスンが含まれています。

全体像

目標:インポートパスがどのように解決されるかを理解します。

  • 相対指定子とベア指定子
  • 明示的な.jsを使用します(安全なデフォルト)
  • フォルダー内のindex.js
  • パッケージのエントリーポイント(main/exportsの概要)
Nodeとブラウザのバンドラーにおけるモジュール解決 — イラスト1

相対インポートとベアインポート

相対インポートは./または../で始まります。ベアインポートはインストール済みパッケージを指します。

// Relative path imports start with ./ or ../
// Bare specifiers refer to packages installed (e.g., "lodash")
const examples = [
  "import { sum } from \\"./math.js\\";   // relative, file nearby",
  "import leftPad from \\"left-pad\\";   // bare, from node_modules",
  "import thing from \\"../lib/thing.js\\"; // parent folder"
];

console.log("specifiers:");
for (const line of examples) console.log(line);
Nodeとブラウザのバンドラーにおけるモジュール解決 — イラスト2

拡張子の重要性

解決エラーを避けるため、ESMでは.js拡張子を追加します。.mjsや.cjsを見かけることもあります。

// Include file extensions for ESM (safe beginner habit)
const extTips = [
  "Good (ESM): import util from \\"./util.js\\"",
  "Also seen: .mjs for ESM files, .cjs for CJS files",
  "Avoid: import \\"./util\\" (may fail in Node/browsers)"
];

console.log("extensions:");
for (const t of extTips) console.log(t);
Nodeとブラウザのバンドラーにおけるモジュール解決 — イラスト3

フォルダーとindex.js

フォルダーではindex.jsを公開することがよくあります。明示的に(.../index.js)指定すると、初心者にも分かりやすくなります。

// If you import a folder, many setups look for index.js inside it
const folderExample = [
  "my-lib/",
  "  index.js",
  "  helpers/",
  "    index.js"
];

for (const l of folderExample) console.log(l);

// Typical imports
const dirImports = [
  "import main from \\"./my-lib/index.js\\";",
  "import alsoMain from \\"./my-lib/\\";        // some setups resolve to index.js",
  "import helper from \\"./my-lib/helpers/index.js\\";"
];

console.log("imports:");
for (const l of dirImports) console.log(l);
Nodeとブラウザのバンドラーにおけるモジュール解決 — イラスト4

パッケージのエントリーポイント

パッケージはmain/exportsを使ってエントリーポイントを公開します。ベアインポートでは、ESMまたはCJSに適したファイルが選択されます。

// Installed packages declare entry points in package.json
const pkgJson = [
  "{",
  "  \\"name\\": \\"tiny-lib\\",",
  "  \\"main\\": \\"dist/cjs/index.cjs\\",",
  "  \\"exports\\": {",
  "    \\".\\": { \\"import\\": \\"./dist/esm/index.js\\", \\"require\\": \\"./dist/cjs/index.cjs\\" }",
  "  }",
  "}"
];

console.log("package.json entry (example):");
for (const l of pkgJson) console.log(l);

// Importing a bare specifier will use these fields
console.log("import tiny-lib     -> resolves to ESM or CJS entry depending on environment");
Nodeとブラウザのバンドラーにおけるモジュール解決 — イラスト5

ヒントと注意点

ヒント:

  • ローカルファイルには.js付きの相対パスを優先します。
  • インストール済みパッケージにのみベアインポートを使用します。
  • 曖昧さを避けるため、index.jsを明示します。
  • ブラウザーでは、インポートが有効なURLでなければなりません(拡張子を付けることがよくあります)。
Nodeとブラウザのバンドラーにおけるモジュール解決 — イラスト6

解決の基本クイズ

クイックチェック:安全なローカルインポートパスです。

Nodeとブラウザのバンドラーにおけるモジュール解決 — イラスト7

まとめ

まとめ:ローカルファイル → ./file.js。パッケージ → ベア名。フォルダーはindex.jsに解決されることがよくあります。これらのルールを知っておくと、インポートをシンプルで予測可能に保てます。

Nodeとブラウザのバンドラーにおけるモジュール解決 — イラスト8

よくある質問

「Nodeとブラウザのバンドラーにおけるモジュール解決」レッスンは無料ですか?

はい。「Nodeとブラウザのバンドラーにおけるモジュール解決」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、JavaScript Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 JavaScript Academyコースには全3レッスンが含まれています。

「Nodeとブラウザのバンドラーにおけるモジュール解決」で何を学びますか?

インポートが解決される仕組みを学びます。相対指定子とベア指定子、ファイル拡張子(.js/.mjs/.cjs)、indexファイル、基本的なパッケージのエントリポイントを扱います。 ブラウザで直接実行するハンズオンコードでJavaScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

JavaScript Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのJavaScript Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/3です。

「Nodeとブラウザのバンドラーにおけるモジュール解決」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このJavaScript Academyレッスンでコードを書いて実行できますか?

はい。すべてのJavaScript Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ESMの基礎 — import/export、defaultとnamed
  2. CommonJSの基礎 — require/module.exportsとexports
  3. Nodeとブラウザのバンドラーにおけるモジュール解決
← JavaScript Academyに戻る