I am trying to compile scss using node.js and node-sass module, the problem is that i was only able to compile sass code, when i insert scss code it says error wrong syntax. Odd is that when i put the same code to file and compile from *.scss file it works. Unfortunately nature of my application requires that it is compiled from string. Anyone has some ideas ? ;)
this is the code that works:
var sass = require('node-sass');
/* test.scss content: $text-color:#555555;\nbody{background:$text-color;} */
var output = sass.render({
file: __dirname + '/test.scss',
indentedSyntax: true,
outputStyle : 'expanded'
}, function(err, result) {
if(err) console.log(err);
if(result) console.log(result, result.css.toString());
});
and this is the one that doesnt:
var sass = require('node-sass');
var dataTemp = '$text-color:#555555;\nbody{background:$text-color;}';
var output = sass.render({
data: dataTemp,
indentedSyntax: true,
outputStyle : 'expanded'
}, function(err, result) {
if(err) console.log(err);
if(result) console.log(result, result.css.toString());
});
It seems odd because official doc contains example with using scss code from data.
According to docs, indentedSyntax option enables indent-sensitive sass mode. Looks like render expects sass and fails when gets scss instead. Try to remove this line:
indentedSyntax: true,
I guess in the first case when you loaded code from the file, renderer used .scss extension to determine syntax rules. Hope it helps.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With