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();