Browse Source

添加一些构建相关的文件,可以联网情况下通过命令构建android应用,hybrid模式,并在README.md中添加了构建说明

dengdx 1 week ago
parent
commit
6d40e2c912
4 changed files with 682 additions and 662 deletions
  1. 36 0
      .build/build-android.js
  2. 5 0
      README.md
  3. 638 661
      package-lock.json
  4. 3 1
      package.json

+ 36 - 0
.build/build-android.js

@@ -0,0 +1,36 @@
+// build-android.js 位于 .build/ 目录下
+const fs   = require('fs');
+const path = require('path');
+const { execSync } = require('child_process');
+
+// 计算各路径
+const rootDir   = path.join(__dirname, '..');          // 项目根目录
+const cordovaPrjDir = path.join(__dirname, 'dros');    // .build/dros
+const srcDir = path.join(rootDir, 'dist', 'h5');       // ../dist/h5
+const dstDir = path.join(cordovaPrjDir, 'www');
+
+// 1. 在项目根目录执行 cordova create
+execSync('npx cordova create .build/dros', { cwd: rootDir, stdio: 'inherit' });
+
+// 2. 在 .build/dros 中执行 cordova platform add android
+execSync('npx cordova platform add android', { cwd: cordovaPrjDir, stdio: 'inherit' });
+
+// 3. 复制 dist/h5 → .build/dros/www
+fs.rmSync(dstDir, { recursive: true, force: true });
+fs.mkdirSync(dstDir, { recursive: true });
+
+function copy(src, dst) {
+  const stat = fs.statSync(src);
+  if (stat.isDirectory()) {
+    fs.mkdirSync(dst, { recursive: true });
+    for (const entry of fs.readdirSync(src)) {
+      copy(path.join(src, entry), path.join(dst, entry));
+    }
+  } else {
+    fs.copyFileSync(src, dst);
+  }
+}
+copy(srcDir, dstDir);
+
+// 4. 在 .build/dros 中执行 cordova build android
+execSync('npx cordova build android', { cwd: cordovaPrjDir, stdio: 'inherit' });

+ 5 - 0
README.md

@@ -25,3 +25,8 @@ npm run build:electron:win
 ```
 npm run build:electron:linux
 ```
+
+## 构建android平台的应用包[Hybrid]
+- npm i
+- npm run build:h5
+- npm run build:android

File diff suppressed because it is too large
+ 638 - 661
package-lock.json


+ 3 - 1
package.json

@@ -36,7 +36,8 @@
     "start:electron": "electron .",
     "prebuild:arm:linux": "cp ./.build/taro.linux-arm64-gnu.node  ./node_modules/@tarojs/binding",
     "build:electron:win": "electron-builder --config electron-builder.json  --win",
-    "build:electron:linux": "electron-builder --config electron-builder.json  --linux"
+    "build:electron:linux": "electron-builder --config electron-builder.json  --linux",
+    "build:android":"node ./.build/build-android.js"
   },
   "browserslist": [
     "defaults and fully supports es6-module",
@@ -98,6 +99,7 @@
     "autoprefixer": "^10.4.21",
     "babel-preset-taro": "4.1.1",
     "browserify-fs": "^1.0.0",
+    "cordova": "^12.0.0",
     "electron-builder": "^26.0.12",
     "eslint": "^9.28.0",
     "eslint-config-prettier": "^10.1.5",

Some files were not shown because too many files changed in this diff