gulp.task('variables.js', function() {
/**
* 解析scss变量,注入到 variables.js 中
* 具体解析哪些变量,在 variables.js 中定义
*/
var t = fs.readFileSync('./node_modules/@alife/dpl-lst-scm/variables.scss', 'utf-8');
var {variables = [] } = symbolsParser.parseSymbols(t);
var variablesFile = require('./src/variables.js');
result = Object.keys(variablesFile).reduce((buf, key)=>{
let value = '';
let times = 0;
var vari = variables.find(v => v.name == key);
if(vari) value = vari.value;
// 如果值是变量,那么递归查找最终的值
while(value.indexOf('$') > -1){
times++;
value = value.split(' ')[0]; //去除 xx !import的干扰
var vari = variables.find(v => v.name == value);
if(vari) value = vari.value;
if(times == 10){
value = '';
times = 0;
}; // 10 次找不到我就不找了。
}
buf[key] = value;
return buf;
}, {});
let content = 'define("ascm-comp/lib-resale-theme/variables",function(require,exports,module){module.exports='+JSON.stringify(result)+'});'
fs.writeFileSync('./build/variables.js', content);
});