【问题标题】:Node.js - How to grab the class names from a .scss fileNode.js - 如何从 .scss 文件中获取类名
【发布时间】:2016-02-25 22:42:59
【问题描述】:

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

【问题讨论】:

    标签: node.js sass fs


    【解决方案1】:

    问题是您需要 sass 文件夹对您的服务器可用,这不是推荐的做法,因为您只发布 css 编译文件,不需要同时发布开发资产。 但是,如果这样做,您将需要使用 node 读取 .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 方法中的路径进行了测试,您可以更改为您自己的路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-28
      • 2015-04-25
      • 2020-05-13
      • 2012-06-07
      • 2012-12-21
      相关资源
      最近更新 更多