2015-04-05 13 views
6

Sto cercando di importare Underscore come un modulo con nome nel mio addon Ember CLI. Guardando la sezione Standard AMD Asset delle guide, sembra che questo dovrebbe funzionare:Come importare Underscore nel mio addon della CLI Ember come modulo?

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

Ecco la linea da Underscore's source:

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

ho provato ad importarlo in uno dei miei file, /addon/utils/class.js:

import _ from 'underscore'; 

e ottenuto un errore:

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

Cosa ho sbagliato?

+0

Strano, ho tentato la stessa cosa, ma non ho incontrato l'errore. L'istruzione app.import inizializza _ come globale nella mia app, mentre se provo a fare 'import _ da 'underscore'' l'app non si caricherà affatto. –

risposta

3

Questa è la problem: if (typeof define === 'function' && define.amd)

define.amd è not definito in loader.js Ember-CLI.

Solutions:

  • avvolgere da soli.
  • Usa browserify a fare la confezione per voi
  • Usa LoDash invece (questo è quello che suggerisco - facile, Peazy, problema risolto & si ottiene il tempo per un turno extra di mojito al bar della spiaggia;)).
+1

bello, grazie! fyi, credo che [ember-browserify] (https://github.com/ef4/ember-browserify) ridurrà presto questi punti dolori, poiché underscore esporta anche un modulo commonjs –

Problemi correlati