从string编译带有node.js的scss

时间:2016-11-28 07:50:44

标签: javascript node.js compilation sass node-sass

我正在尝试使用node.js和node-sass模块编译scss,问题是我只能编译sass代码,当我插入scss代码时它说错误语法错误。奇怪的是,当我将相同的代码放入文件并从* .scss文件编译时,它的工作原理。不幸的是,我的应用程序的性质要求它是从字符串编译的。有人有想法吗? ;)

这是有效的代码:

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()); 
});

这是不存在的:

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()); 
});

这似乎很奇怪,因为official doc包含使用数据中的scss代码的示例。

1 个答案:

答案 0 :(得分:4)

根据docsindentedSyntax选项启用缩进敏感sass模式。看起来渲染需要sass并且在获取scss时失败。尝试删除此行:

indentedSyntax: true,

我想在第一种情况下,当您从文件中加载代码时,渲染器使用.scss扩展名来确定语法规则。希望它有所帮助。