我正在尝试使用 Broccoli Funnel 包将完整的目录拉入 Ember CLI 构建中的 Assets 文件夹中。请在下面找到我的 ember-cli-build.js 文件:
var EmberApp = require('ember-cli/lib/broccoli/ember-app');
var Funnel = require('broccoli-funnel');
module.exports = function(defaults) {
var app = new EmberApp(defaults, {
//
});
var extraAssets = new Funnel('vendor/images/frames/artist/64', {
destDir: '/assets/images'
});
app.toTree(extraAssets);
return app.toTree();
};
目录“vendor/images/frames/artist/64”仅包含.png图像文件,我希望在“assets/images/64/”构建后可以将它们全部提供。构建过程后,我的 Assets 目录中没有创建图像文件夹。
你能帮我指出我哪里出了问题吗?是否有任何调试工具可以显示 Broccoli Funnel 尝试添加到构建中的内容以及这些文件分发到的位置?
最佳答案
app.ToTree
接受转换后的节点数组(broccoli 1.x.x 中的树)。
此外,您还必须返回通过 app.toTree
调用转换的节点。
所以,而不是,
...
app.toTree(extraAssets);
return app.toTree();
你会做的,
return app.toTree([extraAssets])
喜欢Lux建议,鼓励使用broccoli-merge-trees
。
var EmberApp = require('ember-cli/lib/broccoli/ember-app'),
Funnel = require('broccoli-funnel'),
MergeTrees = require('broccoli-merge-trees');
module.exports = function(defaults) {
var app = new EmberApp(defaults, {
//
}),
nodes = [];
nodes.push(new Funnel('vendor/images/frames/artist/64', {
destDir: '/assets/images'
}));
nodes.push(app.toTree());
return new MergeTrees(nodes);
};
调试西兰花树/节点
要调试 broccoli
插件输出,请使用 broccoli-stew 。下面是一个快速示例,列出了漏斗步骤之后出现的文件。
var EmberApp = require('ember-cli/lib/broccoli/ember-app'),
Funnel = require('broccoli-funnel'),
MergeTrees = requre('broccoli-merge-trees'),
log = require('broccoli-stew').log;
module.exports = function(defaults) {
var app = new EmberApp(defaults, {
//
}),
loggedNode,
nodes = [];
funnelOutput = new Funnel('vendor/images/frames/artist/64', {
destDir: '/assets/images'
}));
nodes.push(log(funnelOutput))
nodes.push(app.toTree());
return new MergeTrees(nodes);
};
关于javascript - Ember.js CLI 构建西兰花漏斗不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37867403/