Как установить SASS с Express?
Я создаю приложение node.js с Express и socket.io.
Я хочу использовать SASS, и я вижу, что для него есть пакет npm, я не понимаю, как я могу связать между SSS npm и приложением и заставить его анализировать SASS?
UPDATE:
Я использовал промежуточное программное обеспечение SASS https://github.com/andrew/node-sass и установил его следующим образом:
sass = require('node-sass');
app.configure(function(){
app.set('port', process.env.PORT || 3000);
/* other stuff */
sass.middleware({
src: __dirname + '/public/stylesheets/sass',
dest: __dirname + '/public/stylesheets',
debug: true
});
});
Но он все еще не работает
Ответы
Ответ 1
Вам нужно использовать связующее ПО sass, например этот.
Цитата из документов:
var server = connect.createServer(
sass.middleware({
src: __dirname
, dest: __dirname + '/public'
, debug: true
}),
connect.static(__dirname + '/public')
);
в случае использования выражения, просто добавьте:
app.use(
sass.middleware({
src: __dirname + '/sass', //where the sass files are
dest: __dirname + '/public', //where css should go
debug: true // obvious
})
);
на ваш вызов app.configure()
.
Конечно, на производственных системах лучше перекомпилировать sass для css.
Обновление
В приведенном выше примере промежуточное ПО будет искать файлы sass
в __dirname + '/sass/css'
. Также по умолчанию он ищет файлы с расширением .scss
. Кажется, что нет возможности изменить расширение.
Ответ 2
Вот решение, основанное на различных источниках, включая приведенные выше темы/комментарии:
node:
var connect = require('connect');
var sass = require('node-sass');
var srcPath = __dirname + '/sass';
var destPath = __dirname + '/public/styles';
var server = connect.createServer(
sass.middleware({
src: srcPath,
dest: destPath,
debug: true,
outputStyle: 'expanded',
prefix: '/styles'
}),
connect.static(__dirname + '/public')
);
HTML:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="styles/main.css">
etc
файловая система:
rootDirectory/server.js(это приложение node)
rootDirectory/public/styles/(здесь появляются скомпилированные файлы scss)
rootDirectory/sass/main.scss
Это работает для меня, и я исказил пример:
node-sass-example
здесь:
node -sass-example с использованием префикса
Ответ 3
Если вы используете экспресс-генератор Затем попробуйте "express --view = ejs --css = sass"