Ember.js CLI建造西兰花漏斗不起作用



我正在尝试使用西兰花漏斗软件包将完整的目录拉到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();
};

目录"供应商/images/frames/artist/64"仅包含.png映像文件,我想在构建"资产/images/64/"后将它们全部提供。构建过程后,我的资产目录中没有创建图像文件夹。

您能帮助我在哪里出错吗?是否有任何调试工具可以显示西兰花漏斗要添加到构建中以及将这些文件分配到的位置?

的位置?

app.ToTree接受一个变换的节点( trees 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插件输出,请使用西兰花。这是一个快速示例,列出了漏斗步骤之后存在的文件。

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);
};

您应该使用mergetrees:

return new BroccoliMergeTrees([app.toTree(), extraAssets]);

而不是

app.toTree(extraAssets);
return app.toTree();

最新更新