解析scss文件变量为object

64 阅读1分钟
#!/usr/bin/env node
const { readFileSync } = require('fs')
const path = require('path')

function scssToObject(filePath){
    const scssContent = readFileSync(path.resolve(filePath),'utf8');
    const variables = scssContent.match(/^\$([a-zA-Z]+(?:-[a-zA-Z]+)*(\d)?):\s*#([a-fA-F0-9]+);/gm);
    console.log('variables',variables)
    let obj={};
    if(variables){
        variables.forEach(variable=>{
            const [,name,,value]= variable.match(/^\$([a-zA-Z]+(?:-[a-zA-Z]+)*(\d)?):\s*#([a-fA-F0-9]+);/)
            obj[`$${name}`]= `#${value}`;
        })
    }
    console.log(obj)
    return obj;
}