我正在尝试使用 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 代码的示例。
最佳答案
根据 docs , indentedSyntax
选项启用缩进敏感 sass模式。看起来 render 期望 sass 而在获取 scss 时失败。尝试删除这一行:
indentedSyntax: true,
我想在第一种情况下,当您从文件加载代码时,渲染器使用 .scss 扩展名来确定语法规则。希望对您有所帮助。
关于javascript - 从字符串用 node.js 编译 scss,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40839413/