0


我需要将SASSSCSS字符串编译为项目的CSS字符串。因此,我使用的是节点包 node-sass。转换 SCSS 可以正常工作,但 SASS 不能。

SASS 的示例代码:

'use strict';

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

var dataTemp = 'body{background:blue; a{color:black;}}';

var output = sass.renderSync({
  data: dataTemp
});

console.log(output.css.toString());

问题来了,当我尝试转换这样的东西时,它应该是有效的 .sass 语法

'use strict';

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

var dataTemp = '.red\n color: red';

var output = sass.renderSync({
  data: dataTemp
});

console.log(output.css.toString());

控制台输出:

Error: Invalid CSS after ".": expected 1 selector or at-rule, was ".red color: red "

所以很明显 node-sass 不能那样编译 .sass 代码。node-sass 的语法是:

var result = sass.renderSync({
  data: scss_content
  [, options..]
});

在对象内部,您可以定义选项甚至函数。也许有办法在这样的函数中编译数据?

其他软件包的任何其他解决方案或建议?

4

2 回答 2

5

好吧,通过添加一个名为“indentedSyntax”的选项并将其设置为“true”,node-sass 也可以编译 .sass 代码。抱歉,应该更准确地阅读文档。感谢您的帮助!

'use strict';

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

var dataTemp = '.red\n color: red';

var output = sass.renderSync({
  data: dataTemp,
  indentedSyntax: true,
  outputStyle : 'compressed'
});

console.log(output.css.toString());

日志:“.red{color:red}”

于 2016-05-04T12:53:53.200 回答
2

您的 SCSS 无效 - 您需要提供{}周围的属性:

'use strict';

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

var dataTemp = '.red {color: red}';

var output = sass.renderSync({
  data: dataTemp
});

console.log(output.css.toString());

您可以使用SassMeister等在线工具验证您的 SASS/SCSS

于 2016-04-27T13:54:42.000 回答