纳入范围: - backend/ Spring Boot 多模块后端(iot-common/device/rule/data/alarm/auth) - frontend/admin/ Vue3 + Element Plus 管理后台 - Android/ 涂鸦原生 APP (com.xhai.iot) - backend/sql/ Flyway 风格迁移脚本(V2~V21) - docs/ 对接文档与设计文档 排除范围: - 构建产物: node_modules/ target/ build/ dist/ .gradle/ - 签名密钥: *.jks *.keystore (严禁入库) - 本机配置: Android/local.properties - 运行日志: logs/ *.log - AI 协作本地数据 .codebuddy/ 与第三方 demo tuya-demo/ .gitattributes 统一以 LF 存储, Windows 批处理保留 CRLF
44 lines
1.4 KiB
JavaScript
44 lines
1.4 KiB
JavaScript
/* 文档构建脚本:把 src(app.js + style.css) 内联生成 11 个独立 HTML 页面。
|
||
* 用法:修改 app.js(如 DEFAULT_BASE)后,运行 `node build.js` 重新生成全部页面。 */
|
||
const fs=require('fs');
|
||
const dir=__dirname;
|
||
const css=fs.readFileSync(dir+'/style.css','utf8');
|
||
const js=fs.readFileSync(dir+'/app.js','utf8');
|
||
const m=js.match(/const\s+PRODUCT_NAME\s*=\s*["']([^"']+)["']/);
|
||
const PRODUCT_NAME=m?m[1]:'MumIot';
|
||
const PAGES=[
|
||
['index','概览首页'],['auth','认证与账号'],['member','会员与家庭'],
|
||
['device','设备管理'],['product','产品与物模型'],['tuya','涂鸦云集成'],
|
||
['data','数据采集'],['rule','规则与场景'],['ai','AI 智能'],
|
||
['alarm','告警服务'], ['models','数据模型'],['partner','授权对接'],['panel','中控屏接口']
|
||
];
|
||
const shell=(page,label)=>`<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
<title>${PRODUCT_NAME} API · ${label}</title>
|
||
<style>
|
||
${css}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<div class="layout">
|
||
<aside id="sidebar"></aside>
|
||
<main>
|
||
<div id="topbar"></div>
|
||
<div id="content"></div>
|
||
</main>
|
||
</div>
|
||
<script>
|
||
${js}
|
||
</script>
|
||
<script>initDoc('${page}');</script>
|
||
</body>
|
||
</html>`;
|
||
PAGES.forEach(([p,l])=>{
|
||
fs.writeFileSync(dir+'/'+p+'.html',shell(p,l));
|
||
console.log('generated',p+'.html');
|
||
});
|
||
console.log('done.');
|