高洛峰2017-04-17 11:30:49
可以使用Nodejs自己寫個簡單的命令列工具。
只需要掌握簡單的同步file模組、正規表示式就可以了~
var fs = require("fs")
function format(filePath, keywords) {
// 同步读取文件内容
var content = fs.readFileSync(filePath, "utf-8")
var arr = content.split("\n")
var count = 0
for (var i = 0; i < arr.length; i++) {
var value = arr[i]
var temp
temp = value.replace(/(\d+)px/g, function() {
if (arguments[3].indexOf("@media") != -1 || arguments[3].indexOf("max") != -1 || arguments[3].indexOf("min") != -1) {
} else if (Number(arguments[1]) > 1) {
count++;
// 这里可以自己维护换算规则
return Number(arguments[1]) / 100 + "rem"
}
return arguments[0]
})
if (temp != arr[i]) {
arr.splice(i + 1, 0, temp)
}
}
var result = arr.join("\n")
var formatFilePath = filePath.replace(".", keywords + ".");
fs.writeFile(formatFilePath, result, "utf-8", function(err) {
if (err) console.log(err)
console.log("change lines number: " + count)
})
}
format("style.css", "_format");
使用node app.js
(例如你把上面的程式碼保存成app.js
)
然後就會自動計算同一路徑下的style.css將其中的px都計算成rem,你可以在裡面自己維護轉換規則。