javascript - Ember.js CLI 构建西兰花漏斗不工作

标签 javascript ember.js ember-cli broccolijs

我正在尝试使用 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/

相关文章:

javascript - 如何在没有插件的情况下搜索选择标签 html 的选项

javascript - 无法将文本值分配给事件处理程序中 JQuery 元素的变量

javascript - 如何在javascript中使模块异步

javascript - 谁能解释一下 ember.js 创建函数

javascript - EmberJS 应用程序和西兰花

ember.js - 如何在 ember-cli 项目中使用 ember-pusher

javascript - 最小/最大的 "min"部分不起作用 - javascript

javascript - Ember - 计算属性(这是一个数组)在将项目添加到数组时不获取更新值

ember.js - 使用 ember-cli 的多个 "apps"

javascript - UMD 与 Ember-CLI