用nodejs把目录下所有用px做单位的css文件转化为用rem做单位的css文件
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文件的更多相关文章
- Node.js在任意目录下使用express命令‘不是内部或外部命令’解决方法
1.一开始我只能在nodejs全局目录下使用express命令建一个新的项目,建在其他任意一个目录命令行都会提示"不是内部或外部命令",导致目录会乱,目录如下. 2.尝试了一会,发 ...
- vue-cli脚手架build目录下utils.js工具配置文件详解
此文章用来解释vue-cli脚手架build目录中的utils.js配置文件 此配置文件是vue开发环境的wepack相关配置文件,主要用来处理css-loader和vue-style-loader ...
- Linux中/proc目录下文件详解
转载于:http://blog.chinaunix.net/uid-10449864-id-2956854.html Linux中/proc目录下文件详解(一)/proc文件系统下的多种文件提供的系统 ...
- rman全库恢复到不同主机,不同实例名,不同目录下
一.配置目标主机的ip.hostname及与源端主机的连通性 1.配置目标主机IP 使用图形界面配置IP: administration----network---修改IP(指定静态IP) deact ...
- python获取指定目录下特定格式的文件名
之前一直用windows下的bat脚本获取一个目录下的指定格式的文件名,如下所示: dir *.jpg /b/s > train.set pause 十分简单,将这个bat文件放到你想要获取文件 ...
- 关于DLL文件和EXE文件不在同一目录下的设置【转】
https://www.cnblogs.com/chaosimple/archive/2012/08/13/2636181.html 关于DLL文件和EXE文件不在同一目录下的设置 在开发程序结束后, ...
- Linux中/proc目录下文件详解(转贴)
转载:http://www.sudu.cn/info/index.php?op=article&id=302529 Linux中/proc目录下文件详解(一) 声明:可以自由转载本文, ...
- 33.2 案例:输出指定目录下的所有java文件名(包含子目录)
package day32_file_文件和目录操作; import java.io.File; public class test_输出指定目录下所有的java文件名 { public static ...
- [No00006B]方便的网络下载工具wget 可下载网站目录下的所有文件(可下载整个网站)
wget是linux下命令行的下载工具,功能很强大,它能完成某些下载软件所不能做的,比如如果你想下载一个网页目录下的所有文件,如何做呢?网络用户有时候会遇到需要下载一批文件的情况,有时甚至需要把整个网 ...
随机推荐
- linux学习(七)环境变量、cp、mv、cat,less,more,head,tail
一.环境变量 环境变量其实就是$PATH: [root@iZ25lzba47vZ ~]# echo $PATH /usr/local/nginx/sbin:/usr/local/php/bin:/us ...
- EF动态拼接查询
1.业务中遇到个问题,需要查询如某表的id为1或者2或者3,这里是根据传递参数获取如:传递1,2或者1,3或者1,2,3这里在sql中很好拼接如下: or id= or name=3//3代表另一个字 ...
- SVN服务迁移备份操作步骤
SVN服务备份操作步骤 1.准备源服务器和目标服务器 源服务器:192.168.1.250 目标服务器:192.168.1.251 root/rootroot 2.对目标服务器(251)装SVN服务器 ...
- 4年java开发,该何去何从!
以前都是一直看,今天楼主第一次发博,还望各位不吝赐教. 今天也没别的要说的,就是吐槽一下楼主这几天的面试遭遇,感觉都有点怀疑人生了. 先说说楼主的情况吧,13年毕业本科计算机专业,到现在一直做java ...
- 【2】构建一个SSM项目结构
初步思考一下这个项目的结构,由于是给一个比较老的公司做这个外包项目,服务器是搭建在windows操作系统上的Tomcat6.0,系统的JDK版本也是JDK1.6,都是比较旧. 数据库方面有专人负责,所 ...
- centos6.5安装rabbitmq3.6.14
The minimum version of Erlang/OTP required to run RabbitMQ server 3.6.0 through 3.6.14 is R16B03. St ...
- c# RSA加密和解密
"); Console.WriteLine(encodeString); string decode = MyRSA.Decrypt(encode ...
- WPF学习之路一
前段时间一直在学习MVC,工作需要,现在需要180度急转弯,搞WPF,MVVM,只能找资料学习了. WPF中有一个消息机制,就是当前台控件绑定的值改变时,会自动通知到指定的事件来改变VM的值,反之亦然 ...
- .net core2 发送电子邮件封装
在.net core2 如何发送电子邮件呢,我们选择使用自带的System.Net.Mail,下面我们将如何使用封装成一个函数,供大家参考. /// <summary> /// 发送电子邮 ...
- mysql存储过程分库分表
-- 存储过程创建库 分为两条语句删除和创建DELIMITER $$USE myplan $$DROP PROCEDURE IF EXISTS createDBN $$CREATE PROCEDUR ...