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

})
});
})

})

时间: 2024-10-17 20:25:28

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

rman全库恢复到不同主机,不同实例名,不同目录下

一.配置目标主机的ip.hostname及与源端主机的连通性 1.配置目标主机IP 使用图形界面配置IP: administration----network---修改IP(指定静态IP) deactivate网卡---activate网卡(重启网卡配置才能生效)或者使用root用户执行:service network restart 重启网卡 2.配置主机名 root用户执行:hostname hostNameValue vi  /etc/sysconfig/network 修改:HOSTNA

33.2 案例:输出指定目录下的所有java文件名(包含子目录)

package day32_file_文件和目录操作; import java.io.File; public class test_输出指定目录下所有的java文件名 { public static void main(String[] args) { File f = new File("src"); method(f); } //输出指定目录下的所有java文件名 private static void method(File f) { if(f.isDirectory()) {

JAVA之IO技术-获取指定目录下的文件夹和文件的File对象或是字符串名称。

package ioTest.io3; /* * 获取指定目录下的文件夹和文件的File对象或是字符串名称. * 也可以通过filter获取指定的文件夹或者指定类型的文件 * 这里面需要做一个总结,如何利用jdk的源码去理解不熟悉的方法的应用. */ import java.io.File; import java.io.FileFilter; import java.io.FilenameFilter; public class FileDemo2 { public static void m

Windows CMD下一些有用的命令

2014.06.27 C:\Users\wsc>route print ===========================================================================接口列表 12...08 10 76 c1 5c 56 ......Realtek RTL8188CU Wireless LAN 802.11n USB 2.0 Network Adapter 11...b8 97 5a 09 76 ca ......Qualcomm Athe

JDK/bin目录下的不同exe文件的用途(转)

新安装完JDk 大家是否发现安装目录的bin文件夹有很多exe文件 下面就为大家讲解不同exe文件的用途 javac:Java编译器,将Java源代码换成字节代 java:Java解释器,直接从类文件执行Java应用程序代码 appletviewer(小程序浏览器):一种执行HTML文件上的Java小程序类的Java浏览器 javadoc:根据Java源代码及其说明语句生成的HTML文档 jdb:Java调试器,可以逐行地执行程序.设置断点和检查变量 javah:产生可以调用Java过程的C过程

(实用篇)PHP不用递归遍历目录下所有文件的代码

<?php /** * PHP 非递归实现查询该目录下所有文件 * @param unknown $dir * @return multitype:|multitype:string */ function scanfiles($dir) { if (! is_dir ( $dir )) return array (); // 兼容各操作系统 $dir = rtrim ( str_replace ( '\\', '/', $dir ), '/' ) . '/'; // 栈,默认值为传入的目录 $

Nodejs动态加载路由,Nodejs遍历目录,Nodejs路由工具

工具来源: Nodejs需要手动加载路由文件,如果一个个添加,项目逐渐扩大,比较麻烦. 尤其在项目route目录下,增加模块文件夹的时候,引入路由更是麻烦. 因此写了一个Nodejs动态加载路由,Nodejs遍历目录,Nodejs路由工具,取名为route.js. 支持无限级别目录结构,自动递归引用.有任何更好的建议,欢迎随时留意交流. 使用方法: 1.文件:app.js同级目录增加route.js文件,复制下面贴出源代码: 2.引入:app.js中引入:var route = require(

JDK/bin目录下的不同exe文件的用途

安装完JDK,大家是否发现安装目录的bin文件夹有很多exe文件.下面就为大家介绍一下不同exe文件的用途. javac:Java编译器,将Java源代码换成字节代. java:Java解释器,直接从类文件执行Java应用程序代码. appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序类的Java浏览器 javadoc:根据Java源代码及其说明语句生成的HTML文档. jdb:Java调试器,可以逐行地执行程序.设置断点和检查变量. javah:产生可以调用Java过

Nodejs之windows下安装使用

windows下nodejs安装使用介绍. 1.下载并安装 nodejs下载地址:https://nodejs.org/download/ mongodb下载地址:http://www.mongodb.org/downloads 2.查看版本并安装express nodejs安装成功后,打开cmd命令行: node -v:查看nodejs版本 npm -v:查看npm版本 当版本显示,说明安装成功,此时开始安装express 在express3.6.x之前的版本,express需要全局安装,现在