Node.js - 如何从.scss文件中获取类名

时间:2016-02-25 13:09:12

标签: node.js sass fs

我想问一下是否有人知道如何使用node.js查看.scss文件并获取列出的所有类,然后将它们放在对象或数组中?

1 个答案:

答案 0 :(得分:0)

这个问题是你需要sass文件夹可供你的服务器使用,这不是推荐的做法,因为你只发布了css编译文件,没有必要也发布dev资源。 但是,如果您这样做,则需要使用节点读取.scss文件,然后使用正则表达式匹配文件中的.class字符串。

这将读取文件:

var fs = require('fs');

function readSassFile () {
    fs.readFile('./public/scss/components/_styles.scss', 'utf8', function (err, data) {
        if (err) {
            console.log(err);
            return;
        }

        regexArray(data);
    });
}

如您所见,最后如果readFile成功检索文件,我正在调用函数regexArray()并发送加载文件的数据。

在regexArray函数中,您需要定义一个正则表达式来评估加载的文件的字符串。

function regexArray (data) {

    var re = /\.\S*/g;
    var m;
    var classArray = [];

    while ((m = re.exec(data)) !== null) {
        if (m.index === re.lastIndex) {
            re.lastIndex++;
        }
        classArray.push(m[0]);
    }

    console.log(classArray);
}

var re是匹配任何以a开头的字符串的正则表达式。并以与您的css类名匹配的非空格字符结束。

然后我们评估m变量什么时候与null不同并将结果存储在数组classArray中,然后你可以记录它以查看结果。

我使用fs.readFile方法中的路径进行测试,您可以为自己的路径更改它。