使用node转换css文件的px到rem

导语:通过node一键转换px到rem,很方便的一个插件。

# 目录

  • 程序编写
  • 案例测试

# 程序编写

运行以下命令构建初始化环境。

$ mkdir pxtorem
$ cd pxtorem
$ npm init -y
1
2
3

新建以下文件

// rem.js

// 引入依赖
let path = require('path');
var fs = require('fs');
let srcPath = path.join('./src/');
let buildPath = path.join('./build/');
let baseFontSize = 16;

// 读取文件
fs.readdir(srcPath, function (err, data) {
    if (err) {
        console.error(err);
    }
    let list = data;
    console.log('building...');
    list.forEach((v,i) => {
        remBuild(v);
        if (i === list.length-1) {
            console.log('build ok!');
        }
    });
})

// 转换单位
function remBuild (filename) {  
    var css = fs.readFileSync(srcPath+filename,'utf8');
    css = css.replace(/(\d+)px/g,function(mh){
        return parseInt(mh)/baseFontSize+"rem";
    });
    console.log(srcPath+filename, buildPath+filename);
    fs.writeFile(buildPath+filename,css, (err,data) => {
        if (err) {
            console.error(err);
        }
        if (data) {
            console.log('ok');
        }
    } );
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

# 案例测试

  • src文件夹里面新建一个css文件。
/* test.css */
.box {
    width: 50px;
    height: 35px;
    border: 1px solid #f00;
}
1
2
3
4
5
6
  • 启动rem程序

package.json里面的scripts加入"build": "node rem.js"

$ npm run build
> pxtorem@1.0.0 build /home/mark/dev/node/pxtorem
> node rem.js

building...
src/test.css build/test.css
build ok!
1
2
3
4
5
6
7
  • 查看结果

build中查看test.css

/* build/test.css */
.box {
    width: 3.125rem;
    height: 2.1875rem;
    border: 0.0625rem solid #f00;
}
1
2
3
4
5
6

# 最后

完美解决,下次你可以直接写一个css移动端网页,最后一转化rem,那种感觉真的很爽,不用再去换算单位了。

分享至:

  • qq
  • qq空间
  • 微博
  • 豆瓣
  • 贴吧