1. 程式人生 > >用nodejs把目錄下所有用px做單位的css文件轉化為用rem做單位的css文件

用nodejs把目錄下所有用px做單位的css文件轉化為用rem做單位的css文件

file tmp 同一行 有用 row 星期 項目 nodejs 改變

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);
}

})
});
})

})

用nodejs把目錄下所有用px做單位的css文件轉化為用rem做單位的css文件