(()=>{ const fsMdl = require('fs'); const pathMdl = require('path'); const basePath = pathMdl.resolve('publish'); if(fsMdl.existsSync(basePath)){ fsMdl.rmSync(basePath,{recursive:true}) } fsMdl.mkdirSync(basePath); //copy 目标文件 copyDir(pathMdl.resolve('dist','server'),pathMdl.resolve(basePath,'dist','server')); copyDir(pathMdl.resolve('pages'),pathMdl.resolve(basePath,'pages')); copyDir(pathMdl.resolve('server','config'),pathMdl.resolve(basePath,'server','config')); copyDir(pathMdl.resolve('node_modules'),pathMdl.resolve(basePath,'node_modules')); //启动文件 fsMdl.copyFileSync(pathMdl.resolve('dist','app.js'),pathMdl.resolve(basePath,'app.js')); const admzip = require('adm-zip'); const zip = new admzip(); zip.addLocalFolder(basePath); zip.writeZip('./publish.zip'); function copyDir(src,dst){ const files = fsMdl.readdirSync(src); if(!fsMdl.existsSync(dst)){ fsMdl.mkdirSync(dst,{recursive:true}); } for(let file of files){ if(file === '.DS_Store'){ continue; } // const dstSub = src.substring(src.lastIndexOf('/')+1); const fn = pathMdl.resolve(src,file); const stat = fsMdl.statSync(fn); if(stat.isFile()){ fsMdl.copyFileSync(fn,pathMdl.resolve(dst,file)); }else if(stat.isDirectory()){ copyDir(fn,pathMdl.resolve(dst,file)); } } } })()