2015-03-17 23 views
6

Uważam, że ścieżka importu w modułach ES6 jest bardzo myląca podczas używania jej w Ember CLI. Na przykład, jeśli chcesz zaimportować model głęboko w mojej aplikacji w końcu robi coś takiego:Moduły Ember CLI ES6: ścieżka importu do katalogu głównego aplikacji

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

jest to wykonywanie prób i błędów, jak trudno jest łatwo wyobrazić sobie, jak głęboko w folderze drzewo, z którego korzystam. Co gorsza, jeśli zmienię moje pliki, wszystko się zepsuje.

Więc alternatywnie można użyć ścieżki bezwzględnej takiego:

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

wolę nie do dysku kodem nazwę aplikacji na ścieżce, ponieważ może to zmienić.

Czy istnieje skrót do określenia katalogu głównego aplikacji?

./ nie działa, ponieważ ./ implikuje bieżącą ścieżkę.

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

Ten post ma wiele pomysłów: http://lostechies.com/derickbailey/2014/02/20/how-i-work-around-the-require-problem-in-nodejs/ –

Odpowiedz

1

Niestety nie ma sposobu, aby programowo wymienić importu ES6 przynajmniej w Ember więc nie można użyć ENV.modulePrefix.

Istnieje jednak obejście. Ilekroć chcesz zmienić prefiks modułu, uruchom polecenie GNU sed z ZSH wewnątrz katalogu Ember root.

sed -i 's/previousName/newName/g' **/* 
Powiązane problemy