2014-09-29 4 views
1

Я пытаюсь включить Stylus в проект Ember-cli. На «ember s» стилус компилирует app.styl и все импортированные таблицы стилей по желанию, но в то время как при запуске будет часто и непоследовательно перекомпилироваться после получения изменений.Stylus несовместимо с Ember-cli

Версия;

  • угасающий-кли 0.0.46
  • Узел 0.10.32
  • НПМ 1.5.0-альфа-4

приложение/стили/app.styl;

@import "reset"; 
@import "config"; 
@import "site-header"; 
@import "site-footer"; 
@import "login-bar"; 

body { 
    color: white; 
} 

Каждый импортированный файл Styl также находится в пределах '/ стили/приложения' папку.

package.json;

"devDependencies": { 
    "body-parser": "^1.2.0", 
    "broccoli-asset-rev": "0.1.1", 
    "broccoli-ember-hbs-template-compiler": "^1.6.1", 
    "broccoli-merge-trees": "^0.1.4", 
    "broccoli-stylus-single": "~0.3.0", 
    "ember-cli": "0.0.46", 
    "ember-cli-ic-ajax": "0.1.1", 
    "ember-cli-inject-live-reload": "^1.0.2", 
    "ember-cli-qunit": "0.1.0", 
    "ember-data": "1.0.0-beta.10", 
    "express": "^4.8.5", 
    "glob": "^4.0.5" 
} 

Если я вносить изменения в app.styl Эмбер-кли признает это, заново строить и обновлять файл активы/project_name.css соответственно. Однако, если вы вносите изменения в импортированный дочерний элемент app.styl (например, «site-footer», Ember-cli будет неуклонно перестраивать и обновлять .css, как ожидалось. Обычно он работает для первой попытки, а затем игнорирует все дальнейшие изменения (на любом детском Styl).

Единственное решение в том, чтобы прекратить и повторно запустить «уголек s».

Дополнительная информация

Я пытался применять повторно компилировать в Brocfile.js, изменив значение по умолчанию от ...

// Ember 
var EmberApp = require('ember-cli/lib/broccoli/ember-app'); 
var app = new EmberApp(); 

module.exports = app.toTree(); 

.. на следующий ...

// Ember 
var EmberApp = require('ember-cli/lib/broccoli/ember-app'); 
var app = new EmberApp(); 

// Stylus 
var mergeTrees = require('broccoli-merge-trees'); 
var compiledStylus = require('broccoli-stylus-single'); 
var stylus = compiledStylus(['app/styles'], 'app.styl', 'assets/project_name.css', { 
    'include css': true, 
    'compress': true, 
}); 

module.exports = mergeTrees([app.toTree(), stylus], { overwrite: true }); 

.. который только в результате того же вопроса дублируя себя, чтобы найти изменения файла в два раза, но имеют один и тот же вопрос в результате.

ответ

0

Проблема была с кэшированием Stylus, установленного внесения изменений в ..

node_modules/брокколи Стилус-сингл/index.js (строка 35);

var stylusOptions = { 
    filename: includePathSearcher.findFileSync(self.inputFile, includePaths), 
    paths: includePaths, 
    cache: false, 
} 

В качестве альтернативы возможность исправить вручную с помощью параметра опций в brocfile.

Смежные вопросы