首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何才能使我的余烬cli插件提供一个供应商树

我如何才能使我的余烬cli插件提供一个供应商树
EN

Stack Overflow用户
提问于 2015-10-08 15:38:25
回答 1查看 1.7K关注 0票数 3

我试图让我的广告供应商的数据,以应用程序使用它。库是CKEditor (从CKEditor构建器生成的自定义版本)。我知道我可以使用addon蓝图来添加bower依赖项,但是由于CKEditor是自定义的,所以我不能在消费应用程序中使用bower下载相同的版本。我使用了treeForPublic花椰菜漏斗将整个ckeditor文件夹从我的addon供应商文件夹复制到应用程序公用文件夹(这是ckeditor需要的)。我唯一的问题是,消费应用程序还需要在其供应商文件夹中有ckeditor文件夹,否则它将不会构建,因为观察者找不到它。我的印象是,如果addon将文件夹移动到公共目的地,并且在(包括钩子)中导入js/css文件,最终应用程序不需要原始供应商的文件夹。我是否理解错了,或者我可以这样做,而不重复我的ckeditor文件夹之间的插件和应用程序?

以下是我到目前为止所拥有的:

代码语言:javascript
复制
included: function(app) {
    this._super.included(app);

    app.import('vendor/ckeditor_custom/ckeditor.js');
    app.import('vendor/ckeditor_custom/styles.js');
    app.import('vendor/ckeditor_custom/lang/fr.js');
    app.import('vendor/ckeditor_custom/skins/minimalist/editor.css');
},

contentFor: function(type, config) {
    if (type === 'vendor-prefix') {
        return "window.CKEDITOR_BASEPATH = 'assets/ckeditor/';";
    }
},

treeForPublic: function (tree) {
    var ckeditorTree = new Funnel('vendor/ckeditor_custom/', {
        srcDir: '/',
        exclude: ['**/.DS_Store','**/*.md'],
        destDir: 'assets/ckeditor'
    });

    return BroccoliMergeTrees([tree, ckeditorTree]);
},

treeForVendor: function (tree) {
    var ckeditorTree = new Funnel('vendor/ckeditor_custom/', {
        srcDir: '/',
        exclude: ['**/.DS_Store','**/*.md'],
        destDir: 'ckeditor_custom'
    });

    return ckeditorTree;
},

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2015-10-17 23:23:49

让它旋转一下:

代码语言:javascript
复制
var path = require('path');
var mergeTrees = require('broccoli-merge-trees');
var concat = require('broccoli-concat');

module.exports = {
  name: 'myaddon',

  treeForVendor: function(tree) {
    var trees = [tree];

    var ckeditorTree = path.join('bower_components', 'ckeditor_custom');

    trees.push(concat(ckeditorTree, {
      inputFiles: [
        'ckeditor.js',
        'styles.js',
        'lang/fr.js'
      ],
      outputFile: '/ckeditor.js'
    }));

    trees.push(concat(ckeditorTree, {
      inputFiles: [
        'skins/minimalist/editor.css'
      ],
      outputFile: '/ckeditor.css'
    }));

    return mergeTrees(trees);
  },

  included: function included(app) {
    this.app = app;
    app.import('vendor/ckeditor.js');
    app.import('vendor/ckeditor.css');
  }
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33020226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档