2012-12-19 26 views
11

Jak mogę zintegrować requirejs w aplikacji meteorów i użyć modułów AMD, np. Dla modułów Backbone? Czy ktoś to zrobił i może mi powiedzieć, jakie kroki są potrzebne, aby to zadziałało?Używanie Meteor z Requirejs

Odpowiedz

4

Jedną prostą odpowiedzią (choć może nie taką, której szukasz) jest to, że możesz po prostu użyć dwóch niezależnie. Innymi słowy, załaduj wszystkie swoje skrypty meteorytów, a następnie uruchom ładowanie skryptów wymagających. Twoje wymagające skrypty będą w stanie używać rzeczy z Meteorytów, bez konieczności "importowania" ich za pomocą programu ładującego Require.

Jeśli chcesz, aby trzeba go zaimportować, powinieneś utworzyć dla niego wymaganie "podkładki".

+0

Ostatni raz grałem z meteorytu (v0.4), to nie mają wymagać/commonjs wsparcie. Myślę, że jedyną realną opcją było/jest napisanie własnej wtyczki do meteora lub ręczne skopiowanie wymaganych plików do systemu plików meteorytów. – dsummersl

+0

https://gist.github.com/3922137 fs = __meteor_bootstrap __. Require ('fs') – crapthings

+0

@machineghost: Dzięki, brzmi to jak rozsądne podejście –

0

Oto jak załadowałem Aloha Editor w Meteor i IronRouter. Aloha używa requirejs, aby załadować wszystkie swoje zależności.

  1. Rozpakuj dystrybucja Aloha w publicznego/alohaeditor.
  2. Przenieś wszystkie pliki CSS Aloha, z wyjątkiem aloha-common-extra.css, do klienta/lib/alohaeditor (nie zapomnij o plikach z folderu wtyczek).
  3. We wszystkich plikach css Aloha, zamień ścieżki względne w ścieżki bezwzględne (zamień wszystkie "../" na "/ alohaeditor /").
  4. Zainstalować pakiet meteorologiczny wait-on-lib.
  5. Dodaj następujące hak do trasy:

    onBeforeAction: function(pause) 
        {   
        // Dynamically load require.js 
        var one = IRLibLoader.load('/alohaeditor/lib/require.js', 
         { 
         success: function(){ console.log('Successfully loaded require.js'); }, 
         error: function(){ console.log('Error loading require.js'); } 
         }); 
        if(!one.ready()) 
         return pause(); 
    
        // Aloha settings 
        Aloha = window.Aloha || {}; 
        Aloha.settings = Aloha.settings || {}; 
        Aloha.settings.baseUrl = '/alohaeditor/lib/'; 
        Aloha.settings.plugins = Aloha.settings.plugins || {}; 
        Aloha.settings.plugins.load = 'common/ui, common/format, common/link, common/table, common/list, common/block, common/undo, common/contenthandler, common/paste, common/commands, common/abbr'; 
    
        // Dynamically load aloha.js 
        var two = IRLibLoader.load('/alohaeditor/lib/aloha.js', 
         { 
         success: function(){ console.log('Successfully loaded aloha.js'); }, 
         error: function(){ console.log('Error loading aloha.js'); } 
         }); 
        if(!two.ready()) 
         return pause(); 
        },