什么' ./'在ember-cli导入语句中意味着什么?

时间:2016-03-23 21:10:23

标签: ember.js ember-cli

在ember cli v2.3.0生成的默认app / app.js中,这些import语句位于顶部:

import Ember from 'ember';
import Resolver from './resolver';
import loadInitializers from 'ember-load-initializers';
import config from './config/environment';

通常' ./'将意味着当前目录。在app / app.js中指定的当前目录将是app目录。

令我困惑的是./resolver和./config/environment都有效。有一个app / resolver.js,但没有app / config / environment.js。相反,config / environment.js位于ember项目的根目录下。

那么' ./'是什么?它在两种情况下都有效吗?

2 个答案:

答案 0 :(得分:0)

这与ember-cli loader有关。老实说,我离模块加载专家很远,但是如果你在实时应用中逐步完成,你会看到findModule(name, referrer)name = "my-app/config/environment"referrer = "my-app/app",范围界定到模块“我的应用程序”。

所以./更像是对模块的引用,这里是“my-app”,而不仅仅是一个目录。

答案 1 :(得分:0)

你这么说:

  

通常'./'表示当前目录。

这是完全正确的。 ./表示当前目录,../表示一级上升。

令人困惑的部分是app目录,在构建ember应用程序时省略了该目录。

./resolver有效,因为它们位于同一目录中。

./config/environment有效,因为在省略app目录后它们将位于同一目录中。顺便说一句,my-app/config/environment有效,因为app目录将被忽略,它的所有第一级目录都将放在根目录中。