มีประโยชน์ด้านประสิทธิภาพการใช้หนึ่งมากกว่าอีก
คำตอบปัจจุบันคือไม่เพราะไม่มีเบราว์เซอร์เอ็นimport/export
จิ้นปัจจุบันที่ใช้จากมาตรฐาน ES6
ชาร์ตเปรียบเทียบบางตัวhttp://kangax.github.io/compat-table/es6/อย่านำสิ่งนี้ไปพิจารณาดังนั้นเมื่อคุณเห็นเกือบทุกสนามสำหรับ Chrome โปรดระวัง import
คำหลักจาก ES6 ยังไม่ได้รับการพิจารณา
เครื่องมือเบราว์เซอร์ปัจจุบันรวมถึง V8 ไม่สามารถนำเข้าไฟล์ JavaScript ใหม่จากไฟล์ JavaScript หลักผ่านทางคำสั่ง JavaScript ใด ๆ
(เราอาจจะยังห่างกันไม่กี่ข้อหรือหลายปีจนกว่า V8 จะดำเนินการตามข้อกำหนด ES6)
เอกสารนี้เป็นสิ่งที่เราต้องการและเอกสารนี้เป็นสิ่งที่เราต้องเชื่อฟัง
และมาตรฐาน ES6 บอกว่าควรมีการพึ่งพาโมดูลก่อนที่เราจะอ่านโมดูลเช่นในภาษาการเขียนโปรแกรม C ที่เรามี (ส่วนหัว) .h
ไฟล์
นี่เป็นโครงสร้างที่ดีและผ่านการทดสอบมาอย่างดีและฉันมั่นใจว่าผู้เชี่ยวชาญที่สร้างมาตรฐาน ES6 นั้นจะต้องคำนึงถึง
นี่คือสิ่งที่ช่วยให้ Webpack หรือแพคเกจแพ็คเกจอื่น ๆ ปรับบันเดิลในบางกรณีพิเศษและลดการพึ่งพาบางอย่างจากบันเดิลที่ไม่จำเป็น แต่ในกรณีที่เรามีการพึ่งพาที่สมบูรณ์แบบสิ่งนี้จะไม่เกิดขึ้น
จะต้องใช้เวลาสักครู่จนกว่าimport/export
การสนับสนุนดั้งเดิมจะพร้อมใช้งานและrequire
คำหลักจะไม่ไปที่ใดก็ได้เป็นเวลานาน
คือrequire
อะไร
นี่เป็นnode.js
วิธีโหลดโมดูล ( https://github.com/nodejs/node )
โหนดใช้วิธีการระดับระบบเพื่ออ่านไฟล์ require
คุณพื้นพึ่งพาว่าเมื่อใช้ require
จะสิ้นสุดในการเรียกของระบบบางอย่างเช่นuv_fs_open
(ขึ้นอยู่กับระบบปลายทาง, Linux, Mac, Windows) เพื่อโหลดไฟล์ / โมดูล JavaScript
หากต้องการตรวจสอบว่าเป็นความจริงพยายามที่จะใช้ Babel.js และคุณจะเห็นได้ว่าคำหลักจะถูกแปลงเป็นimport
require
node --experimental-modules index.mjs
ให้คุณใช้import
โดยไม่ใช้Babel และทำงานใน Node 8.5.0+ คุณสามารถ (และควร) เผยแพร่แพคเกจ npm ของคุณเป็น ESModule ดั้งเดิมพร้อมความเข้ากันได้แบบย้อนหลังสำหรับrequire
วิธีเก่า