2016-03-23 8 views
1

In dem Standard-App/app.js von Ember cli v2.3.0 erzeugt sind diese Import-Anweisungen an der Spitze:Was bedeutet "./" in Ember-CLI-Importanweisungen?

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

Regel './' aktuelles Verzeichnis bedeuten würde. Und in App/app.js aktuelles Verzeichnis angegeben wäre das App-Verzeichnis.

Was mich verwirrt ist, dass sowohl ./resolver und ./config/environment arbeiten. Es gibt eine App/resolver.js, aber es gibt keine app/config/environment.js. Stattdessen befindet sich config/environment.js im Stammverzeichnis des Ember-Projekts.

Also, was ist der Deal mit './'? Wie funktioniert es in beiden Fällen?

Antwort

0

Dies hat mit der ember-cli loader zu tun. Ich bin ehrlich gesagt, ich bin weit von einem Modul Lade-Experte, aber wenn Sie dies in einer Live-App durchlaufen Sie sehen, dass findModule(name, referrer), name = "my-app/config/environment", referrer = "my-app/app", Scoping auf das Modul "my-app".

Also die ./ ist eher eine Referenz auf das Modul, hier "my-app", und nicht nur ein Verzeichnis.

0

Sie sagten, dass:

Regel './' aktuelles Verzeichnis bedeuten würde.

Das ist völlig richtig. ./ bedeutet aktuelles Verzeichnis und ../ bedeutet eine Ebene höher.

Der verwirrende Teil ist das Verzeichnis app, das beim Erstellen der Ember-Anwendung weggelassen wird.

./resolver funktioniert, weil sie im selben Verzeichnis sind.

./config/environment funktioniert, weil sie im gleichen Verzeichnis nach dem app Verzeichnis fehlen werden. By the way, my-app/config/environment funktioniert, weil app Verzeichnis ignoriert werden alle Verzeichnisse der ersten Ebene werden im Stammverzeichnis platziert.