Как исключить компонент в сборке ember
Краткое объяснение:
Как исключить все component.hbs
, component.hbs.js
а также this.route('component)
упомянуть в router.js
связанные с компонентом при сборке ember.
Длинное объяснение:
Подумайте, что у вас есть компонент в вашем ember-приложении, который вы хотите, чтобы он был доступен только в среде разработки (пока не будем беспокоиться о том, насколько хорош этот подход!!), и его нужно удалить при сборке для производства.
Я попробовал несколько ember-cli
плагины ( воронка брокколи, Ember-Cli-воронка), которая исключает component.hbs.js
файл, но я все еще вижу ссылки на component.hbs
а также this.route('component')
в скомпилированном файле JS в /dist
папка.
2 ответа
Есть два возможных варианта, которые будут полезны для вас:
Самый быстрый способ - установить Ember-Cli-Tree-Shaker. В вашем файле ember-cli-build.js вы можете включить [exclude]
массив файлов, пути к которым всегда нужно удалить. Тем не менее, это экспериментальный проект, и следуйте всем оговоркам на сайте.
Более длительный, но потенциально более стабильный способ удаления компонента из сборки состоит в создании дополнения в репо и в этом дополнении. index.js
файл, компоненты фильтра в treeForAddon()
а также treeForAddonTemplates()
крючки. Вот пример: https://github.com/kaliber5/ember-bootstrap/blob/master/index.js#L282
У вас есть несколько вариантов:
- Не исключайте файлы или код, но отключите с помощью дополнения ember-feature-flags
Отличное дополнение: https://github.com/kategengler/ember-feature-flags
- Исключить файлы из сборки
Как уже упоминалось Педро, вы можете оформить заказ ember-composable-helpers
для этого. Они, кажется, раздеть файлы в index.js#treeForAddon
, https://github.com/DockYard/ember-composable-helpers/blob/master/index.js#L28-L33
Это также может помочь: Поместите для размещения ресурсов для dev/test в emberjs
- Исключить код из сборки
Может быть немного сложнее... вы можете проверить, как Ember делает это с их функциональными флагами (хотя, я не уверен, что они используют defeatureify
или же babel-plugin-filter-imports
) * Ember Feature Flags: https://guides.emberjs.com/release/configuring-ember/feature-flags/
Defeatureify: https://github.com/thomasboyt/defeatureify/
Надеюсь это поможет!