码迷,mamicode.com
首页 > Web开发 > 详细

用nodejs把目录下所有用px做单位的css文件转化为用rem做单位的css文件

时间:2017-11-05 13:17:07      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:match   length   nod   require   适配   index   each   tostring   var   

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文件

标签:match   length   nod   require   适配   index   each   tostring   var   

原文地址:http://www.cnblogs.com/kzc275/p/7787094.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!