2015-01-28 10 views
5

Sono abbastanza nuovo per emberjs e ember-cli.Come funzionano le istruzioni import in ember-cli?

E mi sono sempre chiesto come una dichiarazione come questa funziona:

import Ember from 'ember' 

fa 'brace build' guardare in alto per 'Ember' in node_modules?

Capisco dichiarazioni come questo con i percorsi relativi:

import ENV from './config/environment' 

ma non quelli di cui, senza un percorso.

Questa domanda si pone in relazione a Could not find module ember-validations, nel tentativo di trovare la causa principale.

risposta

8

La risposta di ordinamento è che Ember-CLI registra gli oggetti globali direttamente con il sistema del modulo. Dai un'occhiata al codice here. Mentre è avvolto in un codice di supporto poco, in sostanza fanno questo:

define('ember', [], function() { 
    return { 
     'default': window.Ember, 
    }; 
}); 

Poi, Ember-CLI converte la sua dichiarazione import durante la compilazione:

import Ember from 'ember'; 

viene convertito in:

var Ember = require('ember')['default']; 

Ricorda che questo è come si fa quando si utilizza un transpiler per utilizzare i moduli AMD. Non sono sicuro al 100% di come funzionerebbe quel codice se usassimo un'implementazione nativa ES6, anche se so che la sintassi supporta questo tipo di cose.

+1

Grande. Ciò mi consente di comprendere bene in che cosa sono state trasformate le importazioni e come funzionano gli shim. – droidbot

Problemi correlati