Stylus и Express - таблицы стилей не перекомпилируются при изменении - PullRequest
24 голосов
/ 10 апреля 2011

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

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

Единственное решение для перекомпиляции моих .styl файлов - это удаление скомпилированных файлов .css ... перезапуск приложения или выполнение Обновление кэша (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\

Ответы [ 3 ]

37 голосов
/ 22 апреля 2011

Поместите static() под промежуточное ПО стилуса.

3 голосов
/ 03 августа 2013

Сейчас может быть слишком поздно, но я только что провел несколько часов (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")

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

Надеюсь, это поможет

0 голосов
/ 05 июля 2015

Настройки по умолчанию 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}));
...