Использование mixins с Ember-cli?
У меня есть mixin app/mixins/ui-listener.js
, который я пытаюсь использовать с Ember-CLI. Я пытаюсь использовать mixin со следующим синтаксисом:
import ListenerMixin from './mixins/ui-listener';
export default Ember.Component.extend(ListenerMixin,{
// class definition
}
Это происходит, когда я сохраняю его, жалуясь, что
ENOENT, нет такого файла или каталога 'tmp/tree_merger-tmp_dest_dir-74tK3rvD.tmp/[app-name]/components/mixins/ui-listener.js'
Кажется забавным, что каталог "mixins" вложен в каталог "components" (поскольку Ember-CLI ставит эти каталоги на одном уровне), но это может быть только шаг сборки Brocoli. В любом случае, любая помощь будет принята с благодарностью.
Ответы
Ответ 1
Я не знаю, как вы экспортируете свой миксин, но это должно работать:
в mixins/ui-listener.js
:
import Ember from 'ember';
export default Ember.Mixin.create({
//some stuff
});
в components/my-component.js
:
import Ember from 'ember';
import UIListenerMixin from '../mixins/ui-listener';
export default Ember.Component.extend(UIListenerMixin, {
// some stuff
});
Ответ 2
Вместо добавления ../
(или даже хуже ../../../
) в ваш импорт, вы можете перейти к config/environment.js
и проверить свойство modulePrefix
. Скажем, префикс app-client
.
Затем вы можете импортировать, используя import UIListen from 'app-client/mixins/ui-listener';
. Абсолют лучше всего работает, если вы находитесь в "глубокой" подпрограмме и т.д.