Stylus и Express - таблицы стилей не перекомпилируются при изменении

Я использую последнюю версию Node в Mac OS X. Я установил Express вместе со Stylus. Также последние версии.


Stylus не перекомпилирует мои .styl файлы, когда я их модифицирую. Как я могу это исправить?


Единственное решение для скомпилирования моих файлов .styl - удалить скомпилированные файлы .css... перезапустить мое приложение или выполнить clear-cache-refresh (CMD + Shift + R), а не в результате происходит повторная компиляция.

Здесь дамп конфигурации моего приложения. Это в основном так же, как при создании нового экспресс-приложения с исполняемым файлом...

app.configure(function ()
{
    this.set("views", __dirname + "/views");
    this.set("view engine", "jade");

    this.use(express.bodyParser());
    this.use(express.methodOverride());
    this.use(express.static(__dirname + '/public'));

    this.use(require("stylus").middleware({
        src: __dirname + "/public",
        compress: true
    }));

    this.use(this.router);
});

Оба мои .styl и скомпилированные файлы .css находятся в [application]\public\stylesheets\

Ответ 1

Поместите static() ниже промежуточного программного обеспечения стилуса.

Ответ 2

Теперь может быть уже слишком поздно, но я только что пропустил несколько часов (T__T), и я думаю, что это ошибка нефрита или что-то в этом роде. Я сам объясню: С помощью этого кода в server.js:

app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(
  stylus.middleware({
    src:  __dirname + "/assets/stylus", 
    dest: __dirname + "/assets/css",
    debug: true,
    compile : function(str, path) {
      console.log('compiling');
      return stylus(str)
        .set('filename', path)
        .set('warn', true)
        .set('compress', true);
    }
  })
 );
app.use(express.static(__dirname + '/assets'));

и в index.jade:

link(rel="stylesheet", href="css/style.css")

работает отлично. Проблема была в теге ссылки:

link(rel="stylesheet", href="stylesheets/style.css")

а затем он вообще не перекомпилировался.

Я надеюсь, что это поможет

Ответ 3

Настройки по умолчанию Express.js

app.use(require('stylus').middleware(path.join(__dirname, 'public')));

Настройка сжатия стилуса Express.js вы должны добавить таблицу стилей в документ, загрузка страницы скомпилирована и сжимает css

app.use(require('stylus').middleware({src: path.join(__dirname, 'public'), compress: true}));