Ember.js CLI 构建西兰花漏斗无法正常工作
Ember.js CLI Build Broccoli Funnel not working
我正在尝试使用 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 试图添加到构建中的内容以及这些文件分发到的位置?
你应该使用 MergeTrees:
return new BroccoliMergeTrees([app.toTree(), extraAssets]);
而不是
app.toTree(extraAssets);
return app.toTree();
app.ToTree
接受转换节点数组(trees in broccoli 1.x.x)。
此外,您必须 return 由您的 app.toTree
调用转换的节点。
因此,
...
app.toTree(extraAssets);
return app.toTree();
你会的,
return app.toTree([extraAssets])
如 建议,鼓励使用 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);
};
调试西兰花Trees/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);
};
我正在尝试使用 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 试图添加到构建中的内容以及这些文件分发到的位置?
你应该使用 MergeTrees:
return new BroccoliMergeTrees([app.toTree(), extraAssets]);
而不是
app.toTree(extraAssets);
return app.toTree();
app.ToTree
接受转换节点数组(trees in broccoli 1.x.x)。
此外,您必须 return 由您的 app.toTree
调用转换的节点。
因此,
...
app.toTree(extraAssets);
return app.toTree();
你会的,
return app.toTree([extraAssets])
如 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);
};
调试西兰花Trees/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);
};