【发布时间】:2016-02-25 22:42:59
【问题描述】:
我想问是否有人知道如何使用 node.js 查看 .scss 文件并获取所有列出的类,然后将它们放入对象或数组中的好解决方案?
【问题讨论】:
我想问是否有人知道如何使用 node.js 查看 .scss 文件并获取所有列出的类,然后将它们放入对象或数组中的好解决方案?
【问题讨论】:
问题是您需要 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 方法中的路径进行了测试,您可以更改为您自己的路径。
【讨论】: