55 lines
1.5 KiB
JavaScript
55 lines
1.5 KiB
JavaScript
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
let mergeTrack = {
|
|
sourcePath: __dirname + '/' + process.argv[2],
|
|
destPath: __dirname + '/' + process.argv[3],
|
|
|
|
start() {
|
|
let jsonData = {};
|
|
jsonData.allInOneStr = '{';
|
|
this.traversalDir(this.sourcePath, jsonData);
|
|
let basic = jsonData.allInOneStr.substring(0, jsonData.allInOneStr.lastIndexOf(','));
|
|
basic += '}'
|
|
basic = basic.replace(/\\/g,"");//去掉空格
|
|
|
|
fs.writeFile(this.destPath, basic, (err) => {
|
|
if (err) {
|
|
console.error(err);
|
|
return;
|
|
}
|
|
console.log('Success to write file: ' +this.destPath);
|
|
});
|
|
},
|
|
|
|
//遍历文件夹找到
|
|
traversalDir(url, content) {
|
|
let files = [];
|
|
if( fs.existsSync(url) ) { //判断给定的路径是否存在
|
|
files = fs.readdirSync(url); //返回文件和子目录的数组
|
|
files.forEach(function(file,index){
|
|
let curPath = path.join(url,file);
|
|
|
|
if(fs.statSync(curPath).isDirectory()) { //同步读取文件夹文件,如果是文件夹,则函数回调
|
|
this.traversalDir(curPath,name,callBack);
|
|
} else {
|
|
let extrName = path.extname(curPath);
|
|
let baseName = path.basename(curPath,'.json');
|
|
let names = baseName.split('_');
|
|
if ( extrName === '.json' && baseName != 'path' ) {
|
|
let childStr = '"'+ names[names.length-1] +'"' + ":" + fs.readFileSync(curPath) + ',';
|
|
content.allInOneStr += childStr;
|
|
}
|
|
}
|
|
}.bind(this));
|
|
} else {
|
|
console.log("给定的路径不存在!",url);
|
|
}
|
|
return files;
|
|
},
|
|
};
|
|
|
|
module.exports = mergeTrack;
|
|
|
|
mergeTrack.start();
|