20171105 1211/星期日
公司为了更好适配手机端,以前用px做单位的css文件,全部需要转化为用rem做单位,目前是1rem=37.5px;开发新项目时,还是用习惯的px写样式代码,完成UI稿的还原后,再统一转化为用rem做单位,贴上我写的nodejs 代码:
var fs = require(‘fs‘);
var path=require(‘path‘);
console.log((__dirname))
var oldContent=‘./px/‘;
var newContent=‘./rem/‘;
fs.readdir(oldContent,function(err,files){
if (err) {
throw err;
}
console.log(files);
files.forEach(function(item, index) {
fs.readFile(oldContent+item, function(err, data) {
if (err) {
return (err);
}
var ss = data.toString().split(‘;‘);
for (var i = 0; i < ss.length; i++) {
if (/[\d.]*(px)/.test(ss[i]) == true) {
var arrPx=ss[i].match(/[\d.]*(px)/g);
var remTmp=‘‘;
//此循环解决多个px同一行这个情况
for(var j=0;j<arrPx.length;j++){
var tmp=arrPx[j].replace(‘px‘, ‘‘) * 1;
var rem = (tmp / 37.5).toFixed(5) + ‘rem‘;
remTmp=ss[i].replace(/[\d.]*(px)/,rem); //不可全局替换,replace不会改变ss[i]的值
ss[i]=remTmp; //改变ss[i]
}
}
}
var resultStr=ss.join(‘;‘);
fs.writeFile(newContent+item, resultStr, function(err) {
if (err) {
return (err);
}
})
});
})
})