Commit 88f994c0 authored by liujiangnan's avatar liujiangnan

脚手架改动

parent 168d3230
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
const path = require("path"); const path = require("path");
const fs = require("fs"); const fs = require("fs");
const fsp = fs.promises;
const os = require('os'); const os = require('os');
const compressing = require("compressing"); const compressing = require("compressing");
...@@ -39,43 +40,56 @@ function clean(zipPath){ ...@@ -39,43 +40,56 @@ function clean(zipPath){
} }
} }
var copy=function(src,dst){ var copy=async function(src,dst){
let paths = fs.readdirSync(src); //同步读取当前目录 let paths = await fsp.readdir(src); //同步读取当前目录
paths.forEach(function(path){ for(let i=0;i<paths.length;i++){
let path = paths[i];
var _src=src+'/'+path; var _src=src+'/'+path;
var _dst=dst+'/'+path; var _dst=dst+'/'+path;
fs.stat(_src,function(err,stats){ //stats 该对象 包含文件属性 var stats = await fsp.stat(_src);
if(err)throw err;
if(stats.isFile()){ //如果是个文件则拷贝 if(stats.isFile()){ //如果是个文件则拷贝
let readable=fs.createReadStream(_src);//创建读取流 let readable=fs.createReadStream(_src);//创建读取流
let writable=fs.createWriteStream(_dst);//创建写入流 let writable=fs.createWriteStream(_dst);//创建写入流
readable.pipe(writable); readable.pipe(writable);
}else if(stats.isDirectory()){ //是目录则 递归 }else if(stats.isDirectory()){ //是目录则 递归
checkDirectory(_src,_dst,copy); try {
await fsp.access(_dst, fs.constants.F_OK);
} catch (error) {
fs.mkdirSync(_dst);
} }
}); await copy(_src,_dst);
});
}
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);
} }
}); }
}; }
const runSpawn = async function (){ const runSpawn = async function (){
checkDirectory(path.resolve(__dirname,"../form"), path.resolve(__dirname,"../dist/form"),copy); try {
checkDirectory(path.resolve(__dirname,"../index"), path.resolve(__dirname,"../dist/index"),copy); await fsp.access(path.resolve(__dirname,"../dist/form"), fs.constants.F_OK);
checkDirectory(path.resolve(__dirname,"../lib"), path.resolve(__dirname,"../dist/lib"),copy); } catch (error) {
await new Promise(function(resolve,reject){ 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"); let zippath = path.resolve(__dirname,"../dist");
//压缩包的存放目录 //压缩包的存放目录
...@@ -119,6 +133,3 @@ let exec = async function(){ ...@@ -119,6 +133,3 @@ let exec = async function(){
exec(); exec();
\ No newline at end of file
\ 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