需求描述,由于工作的需要,需要将原本用于1280720的网页改为19201080的网页(电视端页面)。需求可以拆分为两部分,代码部分的修改以及图片的修改。在代码部分,需要将所有位置以及大小相关的值乘以1.5,图片的尺寸也要放大1.5倍。
首先使用nodejs遍历当前的文件夹:
// 遍历所有的文件
var fs = require("fs")
var path = require("path")
var relativePath = 'test'
// 拿到需要遍历的路径
var root = path.join(__dirname)+relativePathreadDirSync(root)
// 使用异步获取路径
// 参数是遍历文件的根路径
function readDirSync(path){
var pa = fs.readdirSync(path);
// 循环遍历当前的文件以及文件夹
pa.forEach(function(ele,index){
var info = fs.statSync(path+""+ele)
if(info.isDirectory()){
// console.log("dir: "+ele)
readDirSync(path+""+ele);
}else{
var filePath = path +''+ ele;
// 找到 .css .html .js 文件
let fileNameReg = /.css|.js|.html|.htm/g;
let shouldFormat = fileNameReg.test(filePath);
if (shouldFormat) {
console.log('find file:',filePath);
// 这里就拿到了符合条件的文件路径,后面就可以根据这个路径来执行相关的操作
}
}
})
}
如果是HTMLCSSJS文件使用nodejs文件相关api来操作文件,首先是读取到文件,然后是写入文件。代码:
var formatObj = new ChangePosFor4K();// 创建对象,构造函数在下文尾部function readFile(params) {
// 读取文件示例
fs.readFile(params, function (err, data) {
if (err) {
console.log('happen an error when read file , error is ' + err)
}
else {
var codeTxt = data.toString();
// 使用对象来修改文件内容,执行位置以及大小相关值的扩大操作
var formatReturn = formatObj.formatNumber(codeTxt);
codeTxt = formatReturn.code;
// 给不同的文件添加不同的注释
let jsFileReg = /.js$/i;
let htmlFileReg = /.html$|.htm$/i;
let cssFileReg = /.css$/i;
let tip1 = 'auto formatting tool has check this file.'
let tip2 = ' block has been handle in this code.'
let now = new Date();
if ( jsFileReg.test(params) || cssFileReg.test(params) ) {
codeTxt += 'n /* '+ tip1 +'*/'
codeTxt += 'n /* '+ formatReturn.times +' '+ tip2+' at ' + now +'*/'
} else if(htmlFileReg.test(params)){
codeTxt += 'n <!-- '+ tip1 +' -->'
codeTxt += 'n <!-- '+ formatReturn.times +' '+ tip2+' at ' + now +'-->'
}
// 将修改好内容写入当前路径的文件
writeFile(params,codeTxt);









