我正在尝试使用Broccoli Funnel软件包将完整目录拖入Ember CLI构建中的资产文件夹中。请在下面找到我的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 /”中都可以使用它们。完成构建过程后,在我的资产目录中没有创建图像文件夹。
您能帮我指出我哪里出错了吗?是否有任何调试工具来显示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 Build Broccoli Funnel无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37867403/