2012-12-19 18 views
11

Wie kann ich requirjs in eine Meteor-App integrieren und AMD-Module verwenden, z. B. für meine Backbone-Module? Hat jemand das getan und kann mir sagen, welche Schritte benötigt werden, um das zu funktionieren?Meteor mit Requirejs verwenden

Antwort

4

Eine einfache Antwort (obwohl vielleicht nicht die, die Sie suchen) ist, dass Sie einfach die beiden unabhängig voneinander verwenden können. Mit anderen Worten, laden Sie alle Ihre Meteor-Skripte und starten Sie dann das Laden Ihrer benötigten Skripte. Ihre Required Scripts werden in der Lage sein, die Meteor Stuff einfach zu benutzen, ohne sie über Requires Loader importieren zu müssen.

Wenn Sie möchten, dass importiert werden muss, sollten Sie stattdessen ein Require "Shim" dafür erstellen.

+0

ich das letzte Mal mit Meteor gespielt (v0.4) ist es nicht erforderlich/Commonjs Unterstützung hatte. Ich denke, die einzige echte Option war/ist es, ein eigenes Wrapper-Plugin für Meteor zu schreiben oder die benötigten Dateien manuell in Ihr Meteor-Dateisystem zu kopieren. – dsummersl

+0

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

+0

@machineghost. Danke, die –

0

Hier ist, wie ich geladen Aloha Editor in Meteor und IronRouter. Aloha verwendet requirejs, um alle seine Abhängigkeiten zu laden.

  1. Entpacken Sie die Aloha Verteilung in public/alohaeditor.
  2. Verschieben Sie alle Aloha CSS-Dateien, außer aloha-common-extra.css, zu client/lib/alohaeditor (vergessen Sie nicht die Dateien aus dem Ordner plugins).
  3. In allen Aloha CSS-Dateien, relative Pfade in absolute Pfade (ersetzen Sie alle '../' durch '/ Alohaeditor /').
  4. Installieren Sie das wait-on-lib Meteor-Paket.
  5. Fügen Sie die folgende Haken auf Ihrer Route:

    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(); 
        },