Node -sass-middleware не компилируется
Я пытаюсь получить node -sass-middleware, работая с помощью express. Приложение работает без ошибок
...(modules)
var sassMiddleware = require('node-sass-middleware');
var routes = require('./routes/index');
var app = express();
// uncomment after placing your favicon in /public
//app.use(favicon(__dirname + '/public/favicon.ico'));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
//---- LOAD SASS -----//
// adding the sass middleware
var srcPath = __dirname + '/scss';
var destPath = __dirname + '/public/stylesheets';
app.use(sassMiddleware({
src: srcPath,
dest: destPath,
debug: true,
outputStyle: 'compressed'
}));
app.use(express.static(path.join(__dirname, 'public')));
Может ли кто-нибудь увидеть что-то не так с тем, как я пытаюсь скомпилировать sass?
Структура файла:
app
controllers
routes
public
-stylesheets
scss
...
Ответы
Ответ 1
Вот как должно выглядеть app.js:
app.use(sassMiddleware({
src: srcPath,
dest: destPath,
debug: true,
outputStyle: 'compressed'
}),
express.static(path.join(__dirname, 'public')));
Также ваш основной файл scss должен быть назван style.scss и находиться внутри scss/stylesheets/directory.
Вы должны увидеть такой журнал, если вы правильно загрузили модуль:
source : /Users/abc/Desktop/SO/SO_node/scss/stylesheets/style.scss
dest : /Users/abc/Desktop/SO/SO_node/public/stylesheets/stylesheets/style.css
read : /Users/abc/Desktop/SO/SO_node/public/stylesheets/stylesheets/style.css
render : /Users/abc/Desktop/SO/SO_node/scss/stylesheets/style.scss
Ответ 2
Проблема также может заключаться в том, что вы хотите скомпилировать scss
вместо sass
. Поэтому установите indentedSyntax
в false
.
app.use(require('node-sass-middleware')({
src: path.join(__dirname, 'scss'),
dest: path.join(__dirname, 'public'),
indentedSyntax : false,
sourceMap: true
}));
Или удалите его полностью. Экспресс-генератор добавляет это значение по умолчанию.
Ответ 3
Лучше пойдите для grunt-sass. Простая конфигурация, автоматическая задача (благодаря grunt), а также более быстрое время компиляции из-за libsass, которая является версией C исходного компилятора Ruby для SASS. Скомпилируйте файлы sass/scss за 0.3 секунды вместо 3.