Когда я запустил ember build
, плагин брокколи работает правильно, и выводит файл CSS спрайта и спрайт PNG-файла в каталог ресурсов.Как добавить плагин брокколи в приложение ember-cli с живой перезагрузкой?
Когда я запустил ember serve
, то же самое происходит и изначально. Однако, когда я сохраняю какой-либо файл, заставляя Broccoli перестраивать его дерево, , CSS-файлы спрайта и PNG больше не объединяются в основное дерево приложений, , а когда страница обновляется после перезагрузки, страница больше не отображает спринтер изображений.
- Почему это происходит?
- Как я могу гарантировать, что выходы из моего плагина объединяются каждый раз?
Детали:
Задав this question, и не получая никаких ответов, несмотря на ввод баунти на него, я решил написать свой собственный брокколи плагин для CSS генерации изображений спрайтов: broccoli-sprite
Что я пробовал до сих пор:
# 1
Я сливая вывод из моего плагина с этим основного приложения, используя это в Brocfile.js
var app = new EmberApp(/* ... */);
/* other ember-cli init for app */
var broccoliSprite = require('broccoli-sprite');
var spritesTree = broccoliSprite(/* ... */);
var appTree = app.toTree();
var broccoliMergeTrees = require('broccoli-merge-trees');
module.exports = broccoliMergeTrees([spritesTree, appTree]);
Я понимаю, что это не может быть путь, и я я довольно новичок и для ember-cli, и для брокколи, поэтому прошу прощения за новичку, если это одно.
# 2
В Brocfile.js
, расширить EmberApp
включить новое дерево для sprites
:
var EmberApp = require('ember-cli/lib/broccoli/ember-app');
var broccoliSprite = require('broccoli-sprite');
EmberApp.prototype.sprites = function() {
console.log('EmberApp.prototype.sprites');
var spritesTree = broccoliSprite('public', this.options.sprite);
return spritesTree;
};
var originalEmberAppToArray = EmberApp.prototype.toArray;
EmberApp.prototype.toArray = function() {
var sourceTrees = originalEmberAppToArray.apply(this, arguments);
sourceTrees.push(this.sprites());
return sourceTrees;
};
Спасибо за указание на это Джейми, он должен прийти в handy.Would вы не знаете много о том, почему 2-й и последующие пробеги плагина ведут себя по-разному от первый забег? – bguiz
Я не эксперт, но я думаю, он может работать на поддереве? –
Я бы попросил хороших людей в #broccolijs на freenode –