2012-12-19 23 views
11

Come posso integrare requirejs in un'app di meteor e utilizzare i moduli AMD, ad esempio per i miei moduli Backbone? Qualcuno ha fatto e può dirmi quali passi sono necessari per ottenere questo funzionamento?Utilizzo di Meteor con Requirejs

risposta

4

Una risposta semplice (anche se forse non quella che stai cercando) è che puoi semplicemente utilizzare i due in modo indipendente. In altre parole, carica tutti i tuoi script di meteora, quindi avvia il caricamento degli script richiesti. I tuoi script richiesti saranno in grado di utilizzare le cose di Meteor bene, senza doverle "importare" nel caricatore di Require.

Se si desidera che debba essere importato, è necessario creare uno "shim" per esso.

+0

L'ultima volta che ho giocato con la meteora (v0.4) non ha avuto bisogno di/supporto commonjs. Penso che l'unica vera opzione era/è scrivere il proprio plugin wrapper per meteora, o copiare manualmente i file richiesti nel proprio filesystem meteor. – dsummersl

+0

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

+0

@machineghost:. Grazie, che suona come un approccio ragionevole –

0

Ecco come ho caricato Aloha Editor in Meteor e IronRouter. Aloha utilizza requirejs per caricare tutte le sue dipendenze.

  1. Unzip la distribuzione Aloha in pubblico/alohaeditor.
  2. Sposta tutti i file Aloha css, ad eccezione di aloha-common-extra.css, su client/lib/alohaeditor (non dimenticare i file dalla cartella dei plug-in).
  3. In tutti i file Aloha css, trasformare i percorsi relativi in ​​percorsi assoluti (sostituire tutto '../' con '/ alohaeditor /').
  4. Installare il pacchetto Meteor wait-on-lib.
  5. Aggiungere la seguente gancio per il vostro percorso:

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