2015-06-09 2 views
1

Я объединил stylus с промежуточным программным обеспечением. но нет compile функции называется вообще ..stylus - промежуточное ПО, не компилирующее `styl` файл

1) Как сделать compile метод работы

2) Как обновить «tcp.css» каждый раз, когда я обновить «tcp.styl` файл модифицированного

вот мой код: структура

var connect = require('connect'), 
    serveStatic = require('serve-static'), 
    stylus = require('stylus'); 

var app = connect(); 

app.use(stylus.middleware({ 
    src  : __dirname + '/app/css', //inside i have tcp.styl 
    dest : __dirname + '/app/css', //i require tcp.css 
    force : true, 
    compile : function(str, path) { 
     console.log('compiled'); //not called at all.. 
     return stylus(str, path) 
     .set('filename', path) //file name i need to update as 'tcp.css'? 
     .set('warn', true) 
     .set('compress', true); 
    } 
})); 

app.use(serveStatic("app")); 
app.listen(5000, function() {console.log("HI", __dirname);}); //works! 

файл: file structure image

+0

Вы действительно запрашиваете URL '/ css/tcp.css'? В вашем фрагменте нет домашней/индексной страницы.Что произойдет, если вы запустите 'curl --verbose localhost: 5000/css/tcp.css'? –

+0

Загружается файл 'css', который у меня есть. проблем нет. (но файл css не создан функцией компиляции, я сделал его вручную и сохранил там). – 3gwebtrain

+0

Двойная проверка вашего макета файла и '__dirname' .Какой папке и файлу содержит приведенный выше фрагмент? Это ваш корень проекта или« приложение », каталог? Более подробная информация о полном расписании файловой системы, которую вы можете публиковать, более точно и легко мы можем помочь вам устранить неполадки. Вероятно, это простая ошибка, но только этот фрагмент недостаточно информации для диагностики проблемы. –

ответ

1

Я смотрел на вашу структуру приложения. Он не соответствует вашей конфигурации. У вас есть файл ./public/stylus/tcp.styl, но это должно соответствовать вашему параметру конфигурации стилей src. Установите его с этой структурой:

  • переместить код стилус для ./public/css/tcp.styl
    • Сохраняя .styl и .css файл рядом друг с другом упрощает вещи.
  • стилус вариант промежуточного слоя: src: __dirname + '/public'
    • удалить стилус промежуточного программного dest. По умолчанию он будет равен src, и все будет проще.
  • URI для загрузки /css/tcp.css
  • скомпилирован CSS будет в конечном итоге в ./public/css/tcp.css, будет обслуживаться статичным промежуточным слоем после того, как стилус промежуточного компилирует.
+0

Конечно, давайте попробуем. – 3gwebtrain

+0

Да, это делается. Примечание: у вас есть идея обновить мой файл .styl' или файл' js' при изменении на перезагрузите страницу. – 3gwebtrain

+0

Вы можете настроить приложение для работы с пером, чтобы это сделать. http://livereload.com/ –

0

у меня есть е но в выражении, это будет делать то, что вы просите.

корневой каталог 'приложение', и это файлы

app.js index.jade public 

общественности/таблицы стилей содержит один файл .styl

public/stylesheets/tcp.styl 

index.jade будет соединен с скомпилирован .css

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

добавьте один абзац в index.jade и создайте его в tcp.styl, и когда вы запустите сервер, вы получите свой файл e auto скомпилировано из tcp.styl -> tcp.css. И папка stylesheets будет содержать два файла:

tcp.styl tcp.css 

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

App.js файл выглядит, что

var express = require('express'), 
 
    nib = require('nib'), 
 
    stylus = require('stylus'); 
 

 
var app = express(); 
 

 
app.set('view engine', 'jade') 
 
app.use(stylus.middleware({ 
 
    src: __dirname + '/public', 
 
    compile: function compile(str, path) { 
 
     return stylus(str) 
 
     .set('filename', path) 
 
     .use(nib()) 
 
    } 
 
})); 
 

 
app.use(express.static(__dirname + '/public')); 
 

 
app.get('/', function (req, res) { 
 
    res.render('../index'); 
 
}); 
 

 
app.listen(3000); 
 
console.log('Server listening on port 3000');

+0

Хорошо, что проблема, чтобы это произошло с сервером 'connect'? – 3gwebtrain

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