0Pricing
JavaScript Academy · บทเรียน

การค้นหาโมดูลใน Node และตัวรวมโค้ดของเบราว์เซอร์

เรียนรู้วิธีแก้ไขการนำเข้า: ตัวระบุแบบสัมพัทธ์เทียบกับแบบเปล่า ส่วนขยายไฟล์ (.js/.mjs/.cjs) ไฟล์ดัชนี และจุดเริ่มต้นแพ็กเกจอย่างง่าย

การค้นหาโมดูลใน Node และตัวรวมโค้ดของเบราว์เซอร์ เป็นบทเรียน JavaScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน 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

นามสกุลมีความสำคัญ

เพิ่มนามสกุล .js ใน ESM เพื่อหลีกเลี่ยงข้อผิดพลาดในการค้นหาโมดูล คุณอาจพบ .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 และตัวรวมโค้ดของเบราว์เซอร์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส JavaScript Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส JavaScript Academy มีบทเรียนทั้งหมด 3 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การค้นหาโมดูลใน Node และตัวรวมโค้ดของเบราว์เซอร์”

เรียนรู้วิธีแก้ไขการนำเข้า: ตัวระบุแบบสัมพัทธ์เทียบกับแบบเปล่า ส่วนขยายไฟล์ (.js/.mjs/.cjs) ไฟล์ดัชนี และจุดเริ่มต้นแพ็กเกจอย่างง่าย คุณปฏิบัติ JavaScript Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน JavaScript Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน JavaScript Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 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