2015-03-17 1 views
6

Я нахожу, что путь импорта в модулях ES6 очень запутан при использовании в Ember CLI. Например, если я хочу, чтобы импортировать модель глубоко в моем приложении, я в конечном итоге делает что-то вроде этого:Модули Ember CLI ES6: путь импорта к корню приложения

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

Это упражнение проб и ошибок, как это трудно легко представить себе, как глубоко в папке Дерево Я использую это. Хуже того, если я реорганизую свои файлы, все ломается.

Так в качестве альтернативы, можно использовать абсолютный путь:

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

Я предпочитаю не жестко закодировать имя приложения в путь, потому что он может измениться.

Есть ли сокращенное обозначение корня приложения?

./ не работает, потому что ./ подразумевает текущий путь.

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

Это сообщение имеет целый ряд идей: http://lostechies.com/derickbailey/2014/02/20/how-i-work-around-the-require-problem-in-nodejs/ –

ответ

1

К сожалению, нет никакого способа программно назвать импорта ES6 по крайней мере, в Эмбер, так что вы не можете использовать ENV.modulePrefix.

Однако есть обходное решение. Всякий раз, когда вы хотите изменить префикс модуля, запустите эту команду GNU sed из ZSH внутри корня Ember.

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