Компиляция scss в css с помощью node-sass с Node.js

Я пытаюсь скомпилировать свой файл scss в файл css, используя node-sass, я уже знаю, как это сделать с помощью командной строки. У меня есть это npm-script в моем package.json файле:

"scripts": {
"scss": "node-sass --watch fileName/scss -o FileName/css"
}

и когда я бегу:

npm run scss

это работает нормально. Я хочу знать, как использовать (со страницы проекта node-sass) :

var sass = require('node-sass');

sass.render({
  file: scss_filename,
  [, options..]
}, function(err, result) { /*...*/ });

Я пробую это в своем app.js :

var sass = require('node-sass');

sass.render({
  file: __dirname + '/scss/style.scss',
  outFile: __dirname + '/css/style.css',
}); 

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


person Reza Poorbaferani    schedule 30.03.2019    source источник


Ответы (1)


в той же документации, на которую вы ссылались

sass.render({
    ...
    outFile: yourPathTotheFile,
  }, function(error, result) { // node-style callback from v3.0.0 onwards
    if(!error){
      // No errors during the compilation, write this result on the disk
      fs.writeFile(yourPathTotheFile, result.css, function(err){
        if(!err){
          //file written on disk
        }
      });
    }
  });
});

sass.render() не записывает в файл, он только передает result обратному вызову. Вам нужно написать его самостоятельно, используя fs, как в примере выше.

person k0hamed    schedule 30.03.2019
comment
Что за fs здесь? Я получаю сообщение об ошибке fs is not defined. К чему оно должно относиться? - person Reza Poorbaferani; 31.03.2019
comment
файловая система узла добавить const fs = require('fs'); - person k0hamed; 31.03.2019