![](/img/trans.png)
[英]Build new instance of component from parent component and inject it into DOM? - Ember
[英]How to exclude a component in ember build
簡短說明:
如何排除所有component.hbs
, component.hbs.js
和this.route('component)
中提到router.js
有關,而燼構建一個組成部分。
詳細說明:
認為您的ember應用程序中有一個組件,希望只在開發環境中可用 (現在不用擔心這種方法的效果!! ),並且在進行生產時必須將其刪除。
我已經嘗試了一些ember-cli
插件( broccoli-funnel , ember-cli-funnel ),該插件排除了component.hbs.js
文件,但是我仍然可以在其中看到對component.hbs
和this.route('component')
的引用。 /dist
文件夾中的已編譯JS文件。
您有多種選擇:
很棒的插件: https : //github.com/kategengler/ember-feature-flags
如pedro所述,您可以為此簽出ember-composable-helpers
。 他們似乎剝離了index.js#treeForAddon
的文件。 https://github.com/DockYard/ember-composable-helpers/blob/master/index.js#L28-L33
這也可能會有所幫助: 在emberjs中放置用於開發/測試的資產
可能會更復雜...您可以查看Ember如何使用其功能標志(盡管我不確定他們是否使用defeatureify
或babel-plugin-filter-imports
)* Ember功能標志: https:// guides.emberjs.com/release/configuring-ember/feature-flags/
希望這可以幫助!
有兩種可能的選項對您有幫助:
快速的方法是安裝Ember-Cli-Tree-Shaker 。 在ember-cli-build.js文件中,您可以包括一個[exclude]
文件路徑數組,該文件路徑始終要刪除。 但是,這是一個實驗性項目,請遵循網站上的所有免責聲明。
從構建中剝離組件的一種較長但可能更穩定的方法是創建一個內部倉庫插件,並在該插件的index.js
文件中,過濾treeForAddon()
和treeForAddonTemplates()
掛鈎中的組件。 這是一個例子: https : //github.com/kaliber5/ember-bootstrap/blob/master/index.js#L282
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.