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.