Requirejs - Mengonfigurasi kebutuhan sebelum memuat data-utama

Kami menggunakan requirejs untuk pertama kalinya, dan saya mengalami masalah dalam menyusun dependensi saya.

Saya telah mendefinisikan file app.js utama saya sebagai atribut data-main di index.html saya:

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

Namun, saya memiliki file yang mendefinisikan semua konfigurasi jalur/shim yang saya perlukan, dan saya ingin file tersebut dijalankan sebelum file app.js. Saya memerlukannya untuk dijalankan sehingga saya dapat mereferensikan jalur yang dikonfigurasi sebagai dependensi di app.js saya.

Saya rasa bukan cara yang tepat untuk menempatkan config.js saya sebagai data utama. Saya mencoba mengatur config.js sebagai ketergantungan seperti ini:

   <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>

tapi itu tidak membantu.

Ada saran?


person elanh    schedule 03.03.2013    source sumber
comment
Coba letakkan opsi konfigurasi shim/path di var require = {}   -  person Simon Smith    schedule 03.03.2013


Jawaban (1)


Dalam kasus saya, saya memuat config.js di app.js untuk berbagi konfigurasi untuk setiap halaman.

Contohnya:

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

Untuk mengoptimalkan proyek ini, menggunakan has.js adalah cara yang lebih baik untuk mengurangi koneksi HTTP. Untuk detail lebih lanjut, lihat contoh proyek ini.

person Kengo TODA    schedule 04.03.2013
comment
Saya akhirnya melakukan sesuatu yang sangat mirip untuk mendapatkan efek berantai. Saya membuat file init.js sebagai data utama saya, dan di dalamnya saya melakukan: require(['config'], function (appConfig) { require(['app'], function(app){ require(['appStart']); }); }); config - menampung konfigurasi jalur yang diperlukan. aplikasi - membuat objek aplikasi saya dan beberapa fungsi inisialisasi lainnya. appStart - memulai aplikasi. - person elanh; 05.03.2013