Requirejs - การกำหนดค่าต้องการก่อนโหลด data-main

เรากำลังใช้ Requirejs เป็นครั้งแรก และฉันมีปัญหาในการจัดโครงสร้างการพึ่งพาของฉัน

ฉันได้กำหนดไฟล์ app.js หลักของฉันเป็นแอตทริบิวต์ data-main ใน index.html ของฉัน:

<script data-main="src/app" src="/js/lib/require/require.js"></script>

แต่ฉันมีไฟล์ที่กำหนดการกำหนดค่า need path/shim ทั้งหมดของฉัน และฉันต้องการให้ไฟล์นั้นทำงานก่อนไฟล์ app.js ฉันต้องการให้มันทำงานเพื่อที่จะสามารถอ้างอิงเส้นทางที่กำหนดค่าเป็นการพึ่งพาใน app.js ของฉัน

ฉันไม่คิดว่าวิธีที่ถูกต้องคือให้ config.js ของฉันเป็น data-main ฉันพยายามตั้งค่า config.js เป็นการพึ่งพาเช่นนี้:

   <script type="text/javascript">
        var require = {
            baseUrl: "/",
            deps: ["src/config"]
        }
    </script>
    <!-- data-main is the main js file of the app -->
    <script data-main="src/app" src="/js/lib/require/require.js"></script>

แต่นั่นไม่ได้ช่วยอะไร

มีข้อเสนอแนะอะไรบ้าง?


person elanh    schedule 03.03.2013    source แหล่งที่มา
comment
ลองใส่ตัวเลือกการกำหนดค่า shim/path ใน var require = {}   -  person Simon Smith    schedule 03.03.2013


คำตอบ (1)


ในกรณีของฉัน ฉันโหลด config.js ใน app.js เพื่อแชร์การกำหนดค่าสำหรับแต่ละเพจ

ตัวอย่างเช่น:

require(['config'], function(){
  require(['module','another'], function(){
    // run with all modules
  });
});

เพื่อเพิ่มประสิทธิภาพโปรเจ็กต์นี้ การใช้ has.js เป็นวิธีที่ดีกว่าในการลดการเชื่อมต่อ HTTP หากต้องการรายละเอียดเพิ่มเติม โปรดดูโปรเจ็กต์ตัวอย่างนี้

person Kengo TODA    schedule 04.03.2013
comment
ฉันลงเอยด้วยการทำสิ่งที่คล้ายกันมากเพื่อให้ได้ผลการผูกมัด ฉันสร้างไฟล์ init.js เป็น data-main ของฉัน และภายในไฟล์ฉันทำ: require(['config'], function (appConfig) { require(['app'], function(app){ require(['appStart']); }); }); config - เก็บการกำหนดค่า need paths แอป - สร้างออบเจ็กต์แอปของฉันและฟังก์ชันการเริ่มต้นอื่นๆ appStart - เตะเริ่มแอป - person elanh; 05.03.2013