导入语句如何在ember-cli中运行?

时间:2015-01-28 13:53:44

标签: ember.js ember-cli

对于emberjs和ember-cli来说还是一个新手。

我一直想知道这样的陈述如何运作:

import Ember from 'ember'

'ember build'是否在node_modules中查找'ember'?

我理解这样的陈述有相对路径:

import ENV from './config/environment'

但不是那些没有路径的人。

这个问题与Could not find module ember-validations有关,试图找到其根本原因。

1 个答案:

答案 0 :(得分:8)

排序答案是Ember-CLI直接向模块系统注册全局对象。看一下代码here。虽然它包含在一个小帮助程序代码中,但它们实际上是这样做的:

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

然后,Ember-CLI在编译期间转换您的import语句:

import Ember from 'ember';

转换为:

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

请记住,这是使用转换器使用AMD模块时的方法。如果我们使用本机ES6实现,我不是100%确定代码是如何工作的,虽然我知道语法支持这种事情。