Files
wordloop/ios/scripts/build-web-assets.sh
T
john e76fa586f1 Add word-book practice, iOS app shell, and fix embedded WebView blank screen.
Ship dual-track learning (daily accumulation vs textbook),沪教/商务词书 APIs and UI, native iOS wrapper with bundled H5, and production book import on deploy.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-06 21:09:27 +08:00

47 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
FRONTEND="$ROOT/frontend"
OUT="$ROOT/ios/WordLoop/WordLoop/www"
echo ">>> 构建 iOS 内嵌前端"
cd "$FRONTEND"
if [ ! -d node_modules ]; then
npm install --silent
fi
npm run build:ios
rm -rf "$OUT"
mkdir -p "$OUT"
cp -R dist/* "$OUT/"
python3 - <<PY
from pathlib import Path
out = Path("$OUT")
html_path = out / "index.html"
js_path = out / "assets" / "app.js"
css_path = out / "assets" / "app.css"
html = html_path.read_text(encoding="utf-8")
js = js_path.read_text(encoding="utf-8")
css = css_path.read_text(encoding="utf-8")
# 单文件内联,避免 wordloop:// 二次请求脚本失败
html = html.replace('<link rel="stylesheet" href="wordloop://app/assets/app.css">', f"<style>{css}</style>")
html = html.replace(
'<script src="wordloop://app/assets/app.js"></script>',
"",
)
# 脚本放在 </body> 前,确保 #app 已存在(head 内联会导致 Vue mount 失败、白屏)
html = html.replace(
"</body>",
f" <script>{js}</script>\\n </body>",
)
html_path.write_text(html, encoding="utf-8")
print(">>> 已内联 app.js / app.css 到 index.html")
PY
echo ">>> 已复制到 $OUT"