Как исключить компонент в сборке ember - PullRequest
0 голосов
/ 27 августа 2018

Краткое объяснение:

Как исключить все component.hbs, component.hbs.js и this.route('component), упомянутые в router.js, относящиеся к компоненту при сборке ember.

Длинное объяснение:

Представьте, что в вашем ember приложении есть компонент, который вы хотите, чтобы был доступен только в среде разработки (, давайте не будем беспокоиться о том, насколько хорош этот подход, сейчас !! ) и должен быть удален при сборке для производства.

Я пробовал несколько ember-cli плагинов ( broccoli-funnel , ember-cli-funnel ), который исключает файл component.hbs.js, но я все еще вижу ссылки на component.hbs и this.route('component') в скомпилированном файле JS в папке /dist.

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Есть два возможных варианта, которые будут вам полезны:

Самый быстрый способ - установить Ember-Cli-Tree-Shaker . В вашем файле ember-cli-build.js вы можете включить массив [exclude] путей к файлам, которые нужно всегда удалять. Тем не менее, это экспериментальный проект, и следуйте всем отказам от ответственности на сайте.

Более длинный, но потенциально более стабильный способ извлечения компонента из сборки состоит в создании аддона in-repo и в файле index.js этого аддона компоненты фильтра в treeForAddon() и treeForAddonTemplates() крючки. Вот пример: https://github.com/kaliber5/ember-bootstrap/blob/master/index.js#L282

0 голосов
/ 27 августа 2018

У вас есть несколько вариантов:

  1. Не исключать файлы или код, но отключить с помощью дополнения ember-feature-flags

Отличный аддон: https://github.com/kategengler/ember-feature-flags

  1. Исключить файлы из сборки

Как упомянул Педро, вы можете проверить ember-composable-helpers для этого. Они, кажется, раздеть файлы в index.js#treeForAddon. https://github.com/DockYard/ember-composable-helpers/blob/master/index.js#L28-L33

Это также может помочь: Место для размещения ресурсов для разработки / тестирования в emberjs

  1. Исключить код из сборки

Может быть немного сложнее ... вы можете проверить, как Ember делает это с их функциональными флагами (хотя, я не уверен, используют ли они defeatureify или babel-plugin-filter-imports) * Ember Feature Flags: https://guides.emberjs.com/release/configuring-ember/feature-flags/

Надеюсь, это поможет!

...