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

แบบสัมพัทธ์เทียบกับแบบไม่ระบุเส้นทาง
การนำเข้าแบบสัมพัทธ์จะเริ่มต้นด้วย ./ หรือ ../ ส่วนการนำเข้าแบบไม่ระบุเส้นทางจะชี้ไปยังแพ็กเกจที่ติดตั้งไว้
// 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);
นามสกุลมีความสำคัญ
เพิ่มนามสกุล .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);
โฟลเดอร์และ 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);
จุดเริ่มต้นของแพ็กเกจ
แพ็กเกจเปิดเผยจุดเริ่มต้นผ่าน 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");
เคล็ดลับและข้อควรระวัง
เคล็ดลับ:
- ควรใช้เส้นทางสัมพัทธ์ที่มี .js สำหรับไฟล์ภายในเครื่อง
- ใช้การนำเข้าแบบไม่ระบุเส้นทางเฉพาะกับแพ็กเกจที่ติดตั้งไว้
- ระบุ index.js ให้ชัดเจนเพื่อหลีกเลี่ยงความกำกวม
- ในเบราว์เซอร์ การนำเข้าต้องเป็น URL ที่ถูกต้อง (มักต้องมีนามสกุล)

แบบทดสอบพื้นฐานการค้นหาโมดูล
ตรวจสอบอย่างรวดเร็ว: เส้นทางการนำเข้าไฟล์ภายในเครื่องที่ปลอดภัย

สรุป
สรุป: ไฟล์ภายในเครื่อง → ./file.js แพ็กเกจ → ชื่อแบบไม่ระบุเส้นทาง โฟลเดอร์มักค้นหาไปยัง index.js การรู้กฎเหล่านี้ช่วยให้การนำเข้าเรียบง่ายและคาดเดาได้

คำถามที่พบบ่อย
บทเรียน “การค้นหาโมดูลใน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พื้นฐาน ESM — import/export, default กับ named
- พื้นฐาน CommonJS — require/module.exports และ exports
- การค้นหาโมดูลใน Node และตัวรวมโค้ดของเบราว์เซอร์