gpt4 book ai didi

ember.js - Ember-cli-build,排除组件 ember 插件

转载 作者:行者123 更新时间:2023-12-02 06:06:35 25 4
gpt4 key购买 nike

我在样板文件中使用“核心” Ember 插件,

npm link core-addon

这个插件包含通用组件、助手、路由......

有没有办法在样板的 ember-cli-build 文件中排除其中一些组件?

我已经在我的样板项目的 ember-build-cli 中尝试了以下内容,这可能是错误的:
const EmberApp = require('ember-cli/lib/broccoli/ember-app');
const environment = EmberApp.env();
module.exports = function (defaults) {
let app = new EmberApp(defaults, {
funnel: {
enabled:true,
exclude:['core-addon/pods/components/pages/**/*']
},
});
return app.toTree();
};

Ember 版本:3.5.0
Ember cli 版本 3.5.0 节点版本 8.11.3

最佳答案

插件通常采取与此相反的方法:插件通过消费应用程序中的配置管理合并到消费应用程序中的内容。

在最高级别,每个插件都有一个入口点,即 index.js。文件位于插件的根目录中。该插件提供了从 config/environment.js 读取的某些配置选项。安装时使用的应用程序。

我认为对您来说非常好的案例研究是ember-bootstrap .看their configuration options更具体地说是 blacklist选项。它们允许消费应用程序只安装引导组件的一个子集。此外,该项目支持 bootstrap 3 或 bootstrap 4,但消费应用程序并没有同时获得两者!工作在 index.js 中完成

让我们看看他们是如何将某些组件添加到消费应用程序的黑名单(即排除)的:

treeForApp(tree) {
tree = this.filterComponents(tree);
return this._super.treeForApp.call(this, tree);
},
filterComponents(tree) {
let whitelist = this.generateWhitelist(this.bootstrapOptions.whitelist);
let blacklist = this.bootstrapOptions.blacklist || [];

// exit early if no opts defined
if (whitelist.length === 0 && blacklist.length === 0) {
return tree;
}

return new Funnel(tree, {
exclude: [(name) => this.excludeComponent(name, whitelist, blacklist)]
});
}

在哪里 this.excludeComponent它的核心是一个 bool 返回过滤器函数,如果黑名单在黑名单情况下包含它,则返回true(排除它)。 treeForApp函数返回所有应用程序文件的树,即将从插件的 app 合并的内容目录进入消费应用程序:

消费应用的 ember-cli-build看起来像这样:
//your-bootstrap-app/ember-cli-build.js

module.exports = function(defaults) {
let app = new EmberApp(defaults, {
'ember-bootstrap': {
blacklist: ['bs-popover', 'bs-accordion']
}
});

return app.toTree();
};

结果将是 no bs-popover没有 bs-accordion在消费应用程序树中可用。这些选项在 index.js 中获得。像这样的文件:
let options =Object.assign({}, defaultOptions, app.options['ember-bootstrap']);
this.bootstrapOptions = options;

检查此 general guide to building addonsthe more advanced api了解更多信息。

关于ember.js - Ember-cli-build,排除组件 ember 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53413322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com