Commit 88f994c0 authored by liujiangnan's avatar liujiangnan

脚手架改动

parent 168d3230
......@@ -7,6 +7,7 @@
const path = require("path");
const fs = require("fs");
const fsp = fs.promises;
const os = require('os');
const compressing = require("compressing");
......@@ -39,43 +40,56 @@ function clean(zipPath){
}
}
var copy=function(src,dst){
let paths = fs.readdirSync(src); //同步读取当前目录
paths.forEach(function(path){
var _src=src+'/'+path;
var _dst=dst+'/'+path;
fs.stat(_src,function(err,stats){ //stats 该对象 包含文件属性
if(err)throw err;
if(stats.isFile()){ //如果是个文件则拷贝
let readable=fs.createReadStream(_src);//创建读取流
let writable=fs.createWriteStream(_dst);//创建写入流
readable.pipe(writable);
}else if(stats.isDirectory()){ //是目录则 递归
checkDirectory(_src,_dst,copy);
}
});
});
}
var checkDirectory=function(src,dst,callback){
fs.access(dst, fs.constants.F_OK, (err) => {
if(err){
fs.mkdirSync(dst);
callback(src,dst);
}else{
callback(src,dst);
}
});
};
var copy=async function(src,dst){
let paths = await fsp.readdir(src); //同步读取当前目录
for(let i=0;i<paths.length;i++){
let path = paths[i];
var _src=src+'/'+path;
var _dst=dst+'/'+path;
var stats = await fsp.stat(_src);
if(stats.isFile()){ //如果是个文件则拷贝
let readable=fs.createReadStream(_src);//创建读取流
let writable=fs.createWriteStream(_dst);//创建写入流
readable.pipe(writable);
}else if(stats.isDirectory()){ //是目录则 递归
try {
await fsp.access(_dst, fs.constants.F_OK);
} catch (error) {
fs.mkdirSync(_dst);
}
await copy(_src,_dst);
}
}
}
const runSpawn = async function (){
checkDirectory(path.resolve(__dirname,"../form"), path.resolve(__dirname,"../dist/form"),copy);
checkDirectory(path.resolve(__dirname,"../index"), path.resolve(__dirname,"../dist/index"),copy);
checkDirectory(path.resolve(__dirname,"../lib"), path.resolve(__dirname,"../dist/lib"),copy);
await new Promise(function(resolve,reject){
try {
await fsp.access(path.resolve(__dirname,"../dist/form"), fs.constants.F_OK);
} catch (error) {
fs.mkdirSync(path.resolve(__dirname,"../dist/form"));
}
try {
await fsp.access(path.resolve(__dirname,"../dist/index"), fs.constants.F_OK);
} catch (error) {
fs.mkdirSync(path.resolve(__dirname,"../dist/index"));
}
try {
await fsp.access(path.resolve(__dirname,"../dist/lib"), fs.constants.F_OK);
} catch (error) {
fs.mkdirSync(path.resolve(__dirname,"../dist/lib"));
}
await copy(path.resolve(__dirname,"../form"), path.resolve(__dirname,"../dist/form"));
await copy(path.resolve(__dirname,"../index"), path.resolve(__dirname,"../dist/index"));
await copy(path.resolve(__dirname,"../lib"), path.resolve(__dirname,"../dist/lib"));
let pkg = require("../package.json");
let str = fs.readFileSync(path.resolve(__dirname,"../dist/index/index.html"),{encoding: 'utf8'});
str = str.replace('<base href="">','<base href="template-base-href">');
fs.writeFileSync(path.resolve(__dirname,"../dist/index/index.html"),str);
await new Promise(function(resolve,reject){
let pkg = require("../package.json");
//要压缩的目录
let zippath = path.resolve(__dirname,"../dist");
//压缩包的存放目录
......@@ -117,8 +131,5 @@ let exec = async function(){
await runSpawn();
}
exec();
exec();
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment