2012-05-31 4 views
7

Ich bin mit dem require.version „2.0.0“
Und ich mag den Unterstrich als lokalen Variable erhalten:Requirejs, Ausgabe die Bibliothek im Laden unterstreicht

Hier mein Code ist (1).

Warum _ ist nicht definiert?
Wie kann ich _ innerhalb der Funktion wie eine lokale Variable


(1)

require.config({ 
    baseUrl: "./", 
    paths: { 
     'underscore': 'vendor/js/underscore-min' 
    }, 
    shim: { 
     'underscore': { 
      exports: 'underscore' 
     } 
    } 
}); 

require([ 
    'underscore' 
], function(_) { 
    "use strict"; 
    console.log(_); // undefined 
}); 
+1

Verwenden Sie den AMD Fork von Underscore https://github.com/amdjs/undderscore? Wenn nicht, könnte das Ihr Problem erklären – nikoshr

+0

@nikoshr danke für Ihren Kommentar. Ich benutze nicht die AMD Forks von Underscore. Wie auch immer, es gibt eine Möglichkeit, dieses Problem zu beheben, ohne die AMD-Version zu verwenden. –

+0

@nikoshr Sowieso, wenn Sie diesen [Artikel] schauen (http://tbranyen.com/post/amdrequirejs-shim-plugin-for-loading-incompatible-javascript) es scheint, dass Shim eingeführt worden ist, um das nicht AMD plugin zu reparieren. –

Antwort

5

Nun, ersetzen Sie einfach exports: 'underscore' von exports: '_'. Dieses Tells muss an das Modul _ angehängt werden. Also wird die Referenz window._ immer noch funktionieren.