在ember-cli插件中共享公共树

时间:2014-12-09 11:16:07

标签: ember-cli

当我阅读有关从public插件共享ember-cli资产目录的所有信息时,我感到非常困惑。

有没有人在这里工作?任何一个示例插件的参考也会受到赞赏......

2 个答案:

答案 0 :(得分:6)

所以......我终于找到了分享静态资产的方法: - 我将文件放在vendor/assets目录中 - 将要共享的文件(每个文件...)声明到插件的index.js文件@adonon的根目录

app.import('vendor/assets/my_image.png');

我在搜索中找到的app.import语句的一个有趣选项是destDir,它允许自定义资产的目标发布路径:

app.import('vendor/assets/a/b/c/my_image.png', { destDir: 'x/y' });

将发布my_image.png @ URL /assets/x/y/my_image.png

希望这会有助于他人节省时间......

答案 1 :(得分:0)

附加组件的资产在名称空间下可用。例如,如果插件中public/assets/image.png中有一个文件,则该文件位于/my-addon/assets/image.png下。

如果您不想使用命名空间,则可以覆盖插件定义中的treeForPublic钩子,如以下the documentation所示:

const Funnel = require('broccoli-funnel');
const mergeTrees = require('broccoli-merge-trees');

module.exports = {
  name: require('./package').name,

  treeForPublic: function(tree) {
    const assetsTree = new Funnel('public');
    return mergeTrees([tree, assetsTree], {
      overwrite: true,
    });
  },
};