Ember-cli находится в стадии интенсивной разработки, поэтому большая часть файловой структуры, вероятно, скоро изменится, но здесь мы расскажем о текущем состоянии структуры папок и о том, почему она устроена так, как есть:
Папка app/
- это то, что напрямую импортируется в ваше приложение. Отсюда берутся помощники, поэтому у вас должен быть файл для каждого из ваших компонентов в этой папке. Кроме того, здесь будут извлечены шаблоны из основного приложения, и поэтому они будут доступны так же, как шаблоны обычно доступны в приложении Ember (render
, partial
и стандартное разрешение).
Некоторые люди предпочитают помещать весь код своих компонентов в app/
, но это плохая идея, потому что папка addon/
существует не только как разделение кода ваших надстроек, но и как способ его импорта с использованием импорта ES6. Итак, хотя вы не можете напрямую получить доступ к компонентам в addon/components/
, вы можете импортировать их в свое приложение следующим образом:
import SomeComponent from 'some-addon/components/some-component'
Это очень полезно для потребителей аддонов, если они хотят расширить аддон, чтобы добавить некоторые функции.
Шаблоны в addon
предварительно компилируются в дереве сборки, что делает надстройки более надежными (например, если они используют другую версию htmlbars, они по-прежнему будут совместимы с базовым приложением). Однако они недоступны через преобразователь, поэтому вам придется вручную импортировать их в компоненты вашего аддона, поэтому план компонентов аддона выглядит следующим образом:
import Ember from 'ember';
import layout from '../templates/components/some-component';
export default Ember.Component.extend({
layout: layout
});
Стили для дополнений могут быть помещены в addon/styles/
или app/styles/
. В addon/styles/
они также предварительно скомпилированы и по умолчанию включены в приложение. Я настоятельно рекомендую включать стили в app/styles
, потому что это делает их доступными с помощью импорта препроцессора в базовом приложении:
@import some-addon/main.css
Это делает их полностью необязательными для пользователей дополнения, не прибегая к app.import
и config
уловкам (что хорошо, потому что вложенные дополнения _ не поддерживают app.import
. Не используйте его.)
ПРИМЕЧАНИЕ. Они не помещаются в пространство имен автоматически, поэтому вам следует поместить свои стили в папку, чтобы убедиться, что они не конфликтуют со стилями других надстроек.
В итоге:
- Любой дополнительный код, который не обязательно должен быть доступен для базового приложения напрямую через помощники, инициализаторы и т. Д., Должен находиться в
addon/
- Все, что вы хотите сделать доступным для импорта из ES6, должно находиться в
addon/
- Шаблоны должны находиться в
addon/templates/
и импортироваться вручную.
- Заглушки компонентов, инициализаторы и другие файлы, которые должны быть включены в стандартную цепочку сборки Ember, должны находиться в
app/
- Стили должны находиться в
app/styles/
и располагаться в пространстве имен в папке (например, app/styles/some-addon/
)
- Не используйте
app.import
.
person
pzuraq
schedule
10.05.2015