在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项目的根目录下。
那么' ./'是什么?它在两种情况下都有效吗?
答案 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
目录将被忽略,它的所有第一级目录都将放在根目录中。