1.下载node并安装:
-参考菜鸟教程:http://www.runoob.com/nodejs/nodejs-install-setup.html
2.初始化一个项目
a:新建一个文件夹
b:在文件夹内打开cmd窗口,初始化一个node项目 (依次执行以下命令)
npm init
npm install jquery --save
执行完成后会生成一个node_model文件夹
c:进入node_module文件夹
如图:
d:在node_module文件夹下新建一个文件夹如:aaaaa 这个文件夹就是模块的名称
如下图:
e:在aaaaaa文件夹下输入cmd命令npm init -y
会生成package.json文件
生成的package.json文件内容如下:
{
"name": "aaaaaa",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
用下面的代码替换package.json的内容
{
"name": "thing-fileMerge",
"version": "1.0.0",
"description": "",
"main": "./lib/index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies":{}
}
在aaaaaa目录下再新建一个文件夹lib,并在lib下新建一个index.js文件,js文件内容如下:
/*
* 读取所有文件
* 合并成一个新文件
*/
const FS = require("fs");
const PATH = require('path');
module.exports = function(fileSource, exportFilePath) {
const readFiles = [];
let newFileSize = 0;
let newFileData = "";
let mergeFileProgress = 0;
function searchFile(path) {
try{
let stats = FS.statSync(path);
if(stats.isFile()){
newFileSize += stats.size;
readFiles.push({absPath:path,size:stats.size});
}else if(stats.isDirectory()){
//合并路径下所有文件
let dirfiles = FS.readdirSync(path);
for(let i = 0;i<dirfiles.length;i++){
searchFile(PATH.join(path,dirfiles[i]));
}
}
}catch(err){
console.log("error not find "+path);
}
}
for(let i=0;i<fileSource.length;i++){
searchFile(fileSource[i]);
}
for(let i = 0;i<readFiles.length;i++){
newFileData += FS.readFileSync(readFiles[i].absPath);
mergeFileProgress++;
console.log("读取第"+mergeFileProgress+"个文件。");
}
FS.writeFile(exportFilePath,newFileData,err =>{
if(null != err){
throw err;
}else{
console.log("总共合并 "+readFiles.length+"个文件 "+newFileSize+" bytes");
}
});
}
f:最后在 node合并 文件夹下建立app.js代码如下
const fileMerge = require("aaaaaa");
const fileSource = ["./1.json","./2.json","./3.json","./4.json"];
const goalFile = "goalFile.html";
fileMerge(fileSource,goalFile);
node app.js执行即可