diff --git a/bin/publish.js b/bin/publish.js
index 7b3fe082c85561079dc25e04f91a07b5e5c1a1a9..c753bf3e08115dd266fad49a97977cce7cda116a 100644
--- a/bin/publish.js
+++ b/bin/publish.js
@@ -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