2016-03-29 18 views
2

Meteor 1.2.1 uygulamamla birlikte RequireJS 2.1.8'in düzgün çalışması sağlandı. Özellikle, benim Demir Yönlendirici rotalara vardı:Meteor 1.3 ve RequireJS

waitOn: function() { 
    return IRLibLoader.load(requireUrl, { 
     success: function() { 
      require.config({ 
       baseUrl: 'http://...' // real URL here 
      }); 
     } 
    }); 
} 

Ben 1.3 Meteor yükseltilmiş, ama şimdi şu hata var: "require.config bir işlev değil".

Daha fazla bilgi için modüller-çalışma zamanı paketinin kendi gereksinim değişkenini tanımladığını görebiliyorum.

benim require.config hattını yapan require.config çağrı, ince çalıştırmak hemen önce bir "= requirejs iste" çalıştı, ama sonra Meteor aşağıdaki hata ile asılı:

Exception from Tracker afterFlush function: 
meteor.js?hash=ec96c6f…:913 TypeError: id.charAt is not a function 
    at fileResolve (modules-runtime.js?hash=939c79d…:288) 
    at require (modules-runtime.js?hash=939c79d…:90) 
    at .<anonymous> (index.js:6) 
    at blaze.js?hash=38069f4…:3331 
    at Function.Template._withTemplateInstanceFunc (blaze.js?hash=38069f4…:3677) 
    at fireCallbacks (blaze.js?hash=38069f4…:3327) 
    at .<anonymous> (blaze.js?hash=38069f4…:3420) 
    at blaze.js?hash=38069f4…:1773 
    at Object.Blaze._withCurrentView (blaze.js?hash=38069f4…:2204) 
    at blaze.js?hash=38069f4…:1772 

Meteor gibi görünüyor gelmez Kendi tarafında bir "talep" yeniden tanımlamak istemiyorum.

Meteor 1.3 ve RequireJS'in birlikte nasıl bir arada var olabilirim.

cevap

0

waitOn işlevinin içinde, Meteor 1.3 module.js'nin "require" değişkenini yeniden tanımladığı sonucuna varır. İyi bir uygulama olan yerel bir değişken olarak, ancak RequireJS tanımlaması ile çelişen bir global olarak gerektirir, bu yüzden global gereksinimi kullanan kodum başarısız olur.

iki adımda ile çözüldü: yerine require.config ait 1. Kullanılan requirejs.config 2. Rewrote kullanmak içlerindedir üzerine kadar bağımlı gerektiren benim tanımlar gerektirir:

define([ 
    'require', 
    ... 
], 
function (
    require, 
    ... 
) { 
    require(...); // code that works :-) 
}); 
İlgili konular