2010-12-03 3 views
11

У кого-нибудь есть действительно новичок руководство по nodejs - express - SASS/LESS? Мне это не удалось. Пример у меня сейчас есть, как можно худой ..Node.js - express - jade - компилировать SASS/LESS

var express = require('express'), 
    less = require('less'), 
    app = express.createServer(); 

var pub_dir = __dirname + '/public'; 

app.configure(function(){ 
    app.use(express.compiler({ src: pub_dir, enable: ['less'] })); 
    app.use(express.staticProvider(pub_dir)); 
}; 

app.configure('development', function(){ 
    app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); 
}); 

Файл style.css.less находится в pub_dir, я могу получить доступ, что непосредственно, и укладка

@brand_color: #4D926F; 
body { 
    color: @brand_color; 
} 

Насколько я понимаю, компиляция должна произойти при запуске, а файл css будет сгенерирован в src -dir, так как dest не указан.
Мой сервер работает нормально, но независимо от того, сколько способов я пытался испортить с помощью dirnames, каталогов и имен файлов LESS/SASS (и их соответствующего содержимого LESS/SASS), я не могу заставить это работать. Штопать! Помогите.

+0

Конечно ... сделать каталог ЦСИ записи ... подъезд F (* & =) – Gnimm 2010-12-03 16:55:34

+0

Я все еще не понимаю. – tofutim 2012-06-21 08:12:25

ответ

13

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

Попробуйте express -c less, чтобы создать образец проекта с МЕНЬШЕ как механизм CSS.

Это должно создать необходимые каталоги. Новые файлы css будут обслуживаться из вашего статического каталога.

Конфигурация:

app.configure(function(){ 
    app.set('views', __dirname + '/views'); 
    app.set('view engine', 'hbs'); 
    app.use(express.bodyDecoder()); 
    app.use(express.methodOverride()); 
    app.use(express.compiler({ src: __dirname + '/public', enable: ['less'] })); 
    app.use(app.router); 
    app.use(express.staticProvider(__dirname + '/public')); 
}); 
+0

Да, это сработало для моего дела.Я использовал следующую команду `express myapp -c sass` Помимо создания приложения с экспресс-структурой, он также добавил настройки узла-sass-middleware в мое приложение. – 2016-08-10 08:14:11

2

Ваша установка является стандартная установка для readymade. Убедитесь, что в вашей системе установлено меньше компилятора.

npm install lessjs readymade

А затем добавьте следующее к server.js

app.use(require('readymade').middleware({root: "public"}));

0

Я работаю на экспресс 4.x и использовать SASS. Вот фрагмент часть я использую для стилей (ум комментарии):

var express = require('express'), 
    // ... other packages 
    sass = require('node-sass'); 

// ... 
var app = express(); 
// ... 
// Commented this default express generator line: 
// app.use(require('stylus').middleware(path.join(__dirname, 'public'))); 
// 
// Because of some bug the node-sass (http://git.io/eItWzA) does not scan the correct folders, 
// so I have both .scss and final .css in one /public/css/ folder 
app.use(
    sass.middleware({ 
     src: __dirname + '/public/', // where the sass files are 
     dest: __dirname + '/public/', // where css should go 
    }) 
); 

// ... rest of app 

Вот суть для него: http://git.io/Vr9KJA

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