From 47d35bfa0acc8a85fcbcad9d82b10ef174043826 Mon Sep 17 00:00:00 2001
From: fanxuehan <fanxuehan@qq.com>
Date: Wed, 26 May 2021 17:06:45 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E6=89=93=E5=8C=85=E5=90=8C=E6=97=B6?=
 =?UTF-8?q?=E6=89=93=E5=8C=85web=5Fbondle?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 publish/build.sh          | 14 +++++++--
 publish/build_step_3.js   | 45 ----------------------------
 publish/build_step_4.js   | 63 +++++++++++++++++++++++++++++++++++++++
 publish/index.html        |  2 +-
 publish/package-lock.json |  6 ++--
 5 files changed, 79 insertions(+), 51 deletions(-)
 create mode 100644 publish/build_step_4.js

diff --git a/publish/build.sh b/publish/build.sh
index af43e74..74fdbdf 100644
--- a/publish/build.sh
+++ b/publish/build.sh
@@ -8,8 +8,6 @@ node build_check.js
 
 set +e
 
-npm install
-
 cd ../form 
 
 npm install
@@ -55,3 +53,15 @@ cd ../publish
 node build_step_3.js
 
 echo "build_step_3 完成~!"
+
+cd ../play
+
+/Applications/CocosCreator/Creator/2.4.4/CocosCreator.app/Contents/MacOS/CocosCreator --path "./" --build "platform=web-desktop;debug=false;buildPath=build_web_desktop" --force
+
+echo "生成 web-desktop 完成~!"
+
+cd ../publish 
+
+node build_step_4.js
+
+echo "build_step_4 完成~!"
\ No newline at end of file
diff --git a/publish/build_step_3.js b/publish/build_step_3.js
index b1b1bc4..8fc7de0 100644
--- a/publish/build_step_3.js
+++ b/publish/build_step_3.js
@@ -6,51 +6,6 @@ async function main() {
   await removeDir('./publish/android');
   await copyDir('../play/build_android/jsb-link/remote', './publish/android');
   await removeDir('../play/build_android/jsb-link');
-
-  const bundleData = {
-    ios: await getBundleData('./publish/ios'),
-    android: await getBundleData('./publish/android'),
-  }
-
-  fs.writeFileSync('./publish/config.json', JSON.stringify(bundleData));
-
-  const tarStream = new compressing.zip.Stream();
-  tarStream.addEntry('./publish/play');
-  tarStream.addEntry('./publish/form');
-  tarStream.addEntry('./publish/ios');
-  tarStream.addEntry('./publish/android');
-  tarStream.addEntry('./publish/config.json');
-
-  const destStream = fs.createWriteStream(`publish/${getReleaseFileName()}.zip`);
-
-  tarStream.pipe(destStream);
-
-  console.log('打包完成!');
-}
-
-async function getBundleData(path) {
-  const bundleData = {
-    sceneName: '',
-    version: '',
-  }
-  const paths = fs.readdirSync(path);
-  bundleData.sceneName = paths[0];
-  const files = fs.readdirSync(path + '/' + bundleData.sceneName);
-  files.forEach(fileName => {
-    fileName.split('.').forEach((str, idx, arr) => {
-      if (str == 'config') {
-        bundleData.version = arr[idx + 1];
-      }
-    })
-  });
-  return bundleData;
-}
-
-function getReleaseFileName() {
-  let date = new Date();
-  let fileName = `Release_${date.getFullYear()}${fix2(date.getMonth() + 1)}${fix2(date.getDate())} `;
-  fileName += `${fix2(date.getHours())}-${fix2(date.getMinutes())}-${fix2(date.getSeconds())}`;
-  return fileName;
 }
 
 main();
\ No newline at end of file
diff --git a/publish/build_step_4.js b/publish/build_step_4.js
new file mode 100644
index 0000000..8992f0a
--- /dev/null
+++ b/publish/build_step_4.js
@@ -0,0 +1,63 @@
+const { removeDir, copyDir, fix2 } = require('./utils');
+const compressing = require('compressing');
+let fs = require('fs');
+
+async function main() {
+  await removeDir('./publish/web_desktop');
+  const projectName = await getBundleName('../play/build_web_desktop/web-desktop/assets');
+  await copyDir(`../play/build_web_desktop/web-desktop/assets/${projectName}`, './publish/web_desktop');
+  await removeDir('../play/build_web_desktop');
+
+  const bundleData = {
+    ios: await getBundleData('./publish/ios'),
+    android: await getBundleData('./publish/android'),
+  }
+
+  fs.writeFileSync('./publish/config.json', JSON.stringify(bundleData));
+
+  const tarStream = new compressing.zip.Stream();
+  tarStream.addEntry('./publish/play');
+  tarStream.addEntry('./publish/form');
+  tarStream.addEntry('./publish/ios');
+  tarStream.addEntry('./publish/android');
+  tarStream.addEntry('./publish/web_desktop');
+  tarStream.addEntry('./publish/config.json');
+
+  const destStream = fs.createWriteStream(`publish/${getReleaseFileName()}.zip`);
+
+  tarStream.pipe(destStream);
+
+  console.log('打包完成!');
+}
+
+async function getBundleName(path) {
+  const paths = fs.readdirSync(path);
+  return paths.find(path => path != 'internal' && path !='main');
+}
+
+async function getBundleData(path) {
+  const bundleData = {
+    sceneName: '',
+    version: '',
+  }
+  const paths = fs.readdirSync(path);
+  bundleData.sceneName = paths[0];
+  const files = fs.readdirSync(path + '/' + bundleData.sceneName);
+  files.forEach(fileName => {
+    fileName.split('.').forEach((str, idx, arr) => {
+      if (str == 'config') {
+        bundleData.version = arr[idx + 1];
+      }
+    })
+  });
+  return bundleData;
+}
+
+function getReleaseFileName() {
+  let date = new Date();
+  let fileName = `Release_${date.getFullYear()}${fix2(date.getMonth() + 1)}${fix2(date.getDate())} `;
+  fileName += `${fix2(date.getHours())}-${fix2(date.getMinutes())}-${fix2(date.getSeconds())}`;
+  return fileName;
+}
+
+main();
\ No newline at end of file
diff --git a/publish/index.html b/publish/index.html
index d4bf389..b0ca3a5 100644
--- a/publish/index.html
+++ b/publish/index.html
@@ -35,7 +35,7 @@
 
 <script src="src/settings.js" charset="utf-8"></script>
 <script src="main.js" charset="utf-8"></script>
-<script type="text/javascript" src="https://staging-teach.cdn.ireadabc.com/h5template/h5-static-lib/js/air.js"></script>
+<script type="text/javascript" src="//staging-teach.cdn.ireadabc.com/h5template/h5-static-lib/js/air.js"></script>
 
 
 <script type="text/javascript">
diff --git a/publish/package-lock.json b/publish/package-lock.json
index e830904..05a1722 100644
--- a/publish/package-lock.json
+++ b/publish/package-lock.json
@@ -5,9 +5,9 @@
   "requires": true,
   "dependencies": {
     "bl": {
-      "version": "1.2.2",
-      "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz",
-      "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==",
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz",
+      "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==",
       "requires": {
         "readable-stream": "^2.3.5",
         "safe-buffer": "^5.1.1"
-- 
2.21.0