javascript - 从字符串用 node.js 编译 scss

标签 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 代码的示例。

最佳答案

根据 docs , indentedSyntax 选项启用缩进敏感 sass模式。看起来 render 期望 sass 而在获取 scss 时失败。尝试删除这一行:

indentedSyntax: true,

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

关于javascript - 从字符串用 node.js 编译 scss,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40839413/

相关文章:

emacs - 从 emacs 编译缓冲区中删除误报

javascript - 如何在 Three.js 中为camera.zoom设置动画

javascript - 在输入点击时使 Bootstrap 时间选择器弹出

node.js - 尝试连接到 Mongodb 时,Cube.js 抛出错误

node.js - 移动到服务器后需要找不到自定义模块

编译错误 - 从文件中读入

java - 从命令行错误在 Linux 上编译 Java 应用程序

javascript - jQuery fadeOut 回调函数未被调用

javascript - jQuery .click() .show() 函数问题

node.js - express-session 中 "saveUninitialized","resave"和 "rolling"属性的确切含义是什么?