我试图让我的广告供应商的数据,以应用程序使用它。库是CKEditor (从CKEditor构建器生成的自定义版本)。我知道我可以使用addon蓝图来添加bower依赖项,但是由于CKEditor是自定义的,所以我不能在消费应用程序中使用bower下载相同的版本。我使用了treeForPublic和花椰菜漏斗将整个ckeditor文件夹从我的addon供应商文件夹复制到应用程序公用文件夹(这是ckeditor需要的)。我唯一的问题是,消费应用程序还需要在其供应商文件夹中有ckeditor文件夹,否则它将不会构建,因为观察者找不到它。我的印象是,如果addon将文件夹移动到公共目的地,并且在(包括钩子)中导入js/css文件,最终应用程序不需要原始供应商的文件夹。我是否理解错了,或者我可以这样做,而不重复我的ckeditor文件夹之间的插件和应用程序?
以下是我到目前为止所拥有的:
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;
},谢谢你的帮助!
发布于 2015-10-17 23:23:49
让它旋转一下:
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');
}
};https://stackoverflow.com/questions/33020226
复制相似问题