2015-03-17 8 views
6

Ich finde den Importpfad in ES6-Modulen sehr unübersichtlich, wenn er in Ember CLI verwendet wird. Zum Beispiel, wenn ich ein Modell tief in meiner Anwendung importieren möchten, ich am Ende so etwas wie dies zu tun:Ember CLI ES6 Module: Importpfad zur App root

import User from '../../../../../models/user'; 

Dies ist eine Übung von Versuch und Irrtum, da es leicht ist schwer, sich vorzustellen, wie tief in den Ordner Baum benutze ich das von. Schlimmer noch: Wenn ich meine Dateien umgestalte, bricht alles.

So alternativ kann ich einen absoluten Pfad wie folgt verwenden:

import User from 'app-name/models/user'; 

ich es vorziehen, nicht zu hart Code den Namen der Anwendung in den Weg, weil sie ändern können.

Gibt es eine Kurzschrift, um den App-Root anzugeben?

./ funktioniert nicht, weil ./ den aktuellen Pfad impliziert.

import User from './models/user'; 
+1

Dieser Beitrag eine Vielzahl von Ideen hat: http://lostechies.com/derickbailey/2014/02/20/how-i-work-around-the-require-problem-in-nodejs/ –

Antwort

1

Leider gibt es keine Möglichkeit, programmatisch zumindest in Ember ES6 Importe zu nennen, so dass Sie nicht ENV.modulePrefix verwenden.

Es gibt jedoch eine Problemumgehung. Wann immer Sie das Modulpräfix ändern wollen, führen Sie diesen GNU sed-Befehl von ZSH im Ember-Root aus.

sed -i 's/previousName/newName/g' **/*