Files
Toolbox/apps/app_order_box/deploy-web.js
T
yangxiangyuan 212dbc4e1d refactor: 重构禅音工具路径与配置,新增私人剪贴板技能
这是一次大型重构和功能新增:
1. 将原 zen_box 工具重命名为 web_zen_box,调整所有相关路径与配置
2. 新增 web_order_box 原生Web应用的完整资源与部署脚本
3. 新增私人剪贴板后端技能与配套测试脚本
4. 修复订单盒子APP的API地址配置,避免路径重复拼接
5. 新增本地开发跨域白名单支持localhost
6. 清理旧版zen_box的冗余文件
2026-07-26 21:03:28 +08:00

65 lines
2.5 KiB
JavaScript

// 自动化部署脚本:构建后自动修正路径并复制到 public
const fs = require('fs');
const path = require('path');
const SOURCE_DIR = path.join(__dirname, 'dist');
const TARGET_DIR = path.join(__dirname, '..', '..', 'public', 'tools', 'web_order_box');
// 确保目标目录存在
if (!fs.existsSync(TARGET_DIR)) {
fs.mkdirSync(TARGET_DIR, { recursive: true });
}
// 复制所有文件
function copyDir(src, dest) {
fs.readdirSync(src).forEach(file => {
const srcPath = path.join(src, file);
const destPath = path.join(dest, file);
if (fs.statSync(srcPath).isDirectory()) {
if (!fs.existsSync(destPath)) fs.mkdirSync(destPath, { recursive: true });
copyDir(srcPath, destPath);
} else {
fs.copyFileSync(srcPath, destPath);
}
});
}
copyDir(SOURCE_DIR, TARGET_DIR);
// 复制字体文件到 public/assets/fonts
const FONTS_SOURCE = path.join(__dirname, 'node_modules', '@expo', 'vector-icons', 'build', 'vendor', 'react-native-vector-icons', 'Fonts');
const FONTS_TARGET = path.join(TARGET_DIR, 'assets', 'fonts');
if (fs.existsSync(FONTS_SOURCE)) {
if (!fs.existsSync(FONTS_TARGET)) fs.mkdirSync(FONTS_TARGET, { recursive: true });
fs.readdirSync(FONTS_SOURCE).forEach(file => {
if (file.endsWith('.ttf')) {
fs.copyFileSync(path.join(FONTS_SOURCE, file), path.join(FONTS_TARGET, file));
}
});
console.log('✅ 字体文件已复制到 assets/fonts/');
}
// 修正 index.html:添加 base 标签并修改路径为相对路径
const indexPath = path.join(TARGET_DIR, 'index.html');
let indexContent = fs.readFileSync(indexPath, 'utf-8');
// 在 head 中添加 base 标签
const baseTag = '<base href="/tools/web_order_box/" />';
if (!indexContent.includes('<base')) {
indexContent = indexContent.replace('</head>', ` ${baseTag}\n</head>`);
}
// 将绝对路径改为相对路径(使 base 标签生效)
indexContent = indexContent.replace(/src="\/_expo\//g, 'src="_expo/');
indexContent = indexContent.replace(/href="\/favicon\.ico"/g, 'href="favicon.ico"');
indexContent = indexContent.replace(/href="\/assets\//g, 'href="assets/');
// 修正字体路径
indexContent = indexContent.replace(/\/assets\/node_modules\/@expo\/vector-icons\/build\/vendor\/react-native-vector-icons\/Fonts\//g, 'assets/fonts/');
fs.writeFileSync(indexPath, indexContent, 'utf-8');
console.log('✅ 部署完成!');
console.log(`📁 目标目录:${TARGET_DIR}`);
console.log('🌐 访问地址:https://traesite.umersoft.com:8975/tools/web_order_box');