ฉันได้ติดตามกับระบบนิเวศ JS ฝั่งไคลเอ็นต์ที่ทันสมัยและอ่านข้อมูลเกี่ยวกับ CommonJS และ AMD (รวมถึงเครื่องมือที่เกี่ยวข้อง - เบราว์เซอร์, requirejs, onejs, jam, อื่น ๆ อีกมากมาย) ถ้าฉันกำลังเขียนไลบรารี Javascript ฉันจะทำให้เป็นโมดูล / แพ็กเกจได้อย่างไรซึ่งมันสามารถเข้าถึงได้อย่างกว้างขวางที่สุด (โดยผู้ใช้ที่สบถโดย CommonJS, AMD และโดยเฉพาะอย่างยิ่ง)
ห้องสมุดยอดนิยมเช่น jQuery ดูเหมือนจะใช้การต่อไฟล์โรงเรียนเก่าสำหรับการสร้างตัวเองและตรวจสอบแบบไดนามิกว่าควรเขียนไปยังexports
หรือบริบททั่วโลก ตอนนี้ฉันกำลังทำสิ่งเดียวกัน แต่ข้อเสียเปรียบหลักคือถ้าฉัน (ต่างจาก jQuery) ขึ้นอยู่กับห้องสมุดไม่กี่แห่งก็ดีที่ไม่ต้องขอให้ผู้ใช้รวมชุด transitive ด้วยตนเองไว้ล่วงหน้า (ถึงแม้ว่าตอนนี้ฉันเพิ่งมีการขึ้นต่อกันสองครั้ง) และแน่นอนว่าเนมสเปซทั่วโลกเป็นมลพิษ
หรือบางทีมันอาจจะดีที่สุดที่จะสร้างไลบรารี่หลายเวอร์ชันสำหรับแต่ละบริบท?
ฉันยังสงสัยเกี่ยวกับบรรจุภัณฑ์และการเผยแพร่ มีหลายระบบ แต่ฉันเชื่อว่าระบบที่สำคัญคือ bower ซึ่งง่ายต่อการจัดการเนื่องจากทั้งหมดนี้ใช้งานได้จริง อย่างไรก็ตามฉันสงสัยว่าฉันควรกำหนดเป้าหมายไปยังระบบแพ็กเกจอื่นเช่นองค์ประกอบ (ซึ่งต้องใช้ CommonJS) หรือไม่
มีประเด็นอื่น ๆ ที่เกี่ยวข้องที่ฉันควรทราบหรือไม่? มีตัวอย่างโครงการที่ดีที่จะติดตามทั้งหมดนี้หรือไม่?