2015-04-05 9 views
6

Ich versuche Underscore als benanntes Modul in mein Ember CLI Addon zu importieren. Mit Blick auf die Standard AMD Asset Abschnitt der Führungen, so scheint es, dies sollte funktionieren:Wie kann ich Underscore in mein Ember CLI Addon als Modul importieren?

app.import(app.bowerDirectory + '/underscore/underscore.js', { 
    exports: { 
    'underscore': ['default'] 
    } 
}); 

Hier ist die Linie von Underscore's source:

define('underscore', [], function() { 
    return _; 
}); 

Ich versuchte, es in einer meiner Dateien zu importieren, /addon/utils/class.js:

import _ from 'underscore'; 

und bekam einen Fehler:

Could not find module underscore imported from ember-cli-mirage/utils/class

Was habe ich falsch gemacht?

+0

Seltsam, versuchte ich die gleiche Sache, aber ich lief nicht in den Fehler. Die App.import-Anweisung initialisiert _ als eine globale in meiner App, während, wenn ich versuche, _im_ von _Unterstrich' zu importieren, wird die App überhaupt nicht geladen. –

Antwort

3

Dies ist problem: if (typeof define === 'function' && define.amd)

define.amdnot in glut-cli des loader.js definiert ist. Lösungen

:

  • Wrap it yourself.
  • Verwenden Verpackung für Sie
  • Verwenden LoDash stattdessen zu tun browserify (das ist, was ich vorschlagen - einfach, peazy, gelöstes Problem & Sie Zeit für eine zusätzliche Runde von Mojitos an der Strandbar erhalten;)).
+1

nett, danke! fyi, glaube ich, dass [ember-browserify] (https://github.com/ef4/ember-browserify) bald diese Pain Points verringern wird, da Unterstriche auch ein commonjs-Modul exportieren –