#!/bin/bash # 一键打包分发:只打代码与运行所需文件,本机密钥与数据(config.json / session.json / # manual-shops.json / data/ 等)绝不进包 —— 对方启动后会自动生成他们本机的配置。 cd "$(dirname "$0")" || exit 1 NAME="智慧运营中台-分发包" OUT="../$NAME" ZIP="../$NAME.zip" rm -rf "$OUT" "$ZIP" mkdir -p "$OUT" # 白名单文件(代码 / 模板 / 启动脚本 / 文档) for f in server.js napos-service.js reports-store.js reports-mcp.js nl-query.js report-html.js imageMeta.js \ package.json package-lock.json config.example.json README.md \ 启动.command 启动.sh 启动.bat; do [ -f "$f" ] && cp "$f" "$OUT/" done # 目录(前端 / 取数引擎 / 依赖) for d in public server scripts napos node_modules; do [ -d "$d" ] && cp -R "$d" "$OUT/" done find "$OUT" -name ".DS_Store" -delete 2>/dev/null ( cd .. || exit 1 zip -qr "$NAME.zip" "$NAME" ) if [ ! -f "$ZIP" ]; then echo "打包失败:$ZIP 未生成"; exit 1 fi rm -rf "$OUT" echo "已生成分发包: $ZIP" echo "包内不含 config.json / session.json / manual-shops.json / data/" echo "(API Key、Cookie、报表数据只留在你本机)" echo "对方解压后双击 启动.command(macOS)或 启动.bat(Windows)即可," echo "首次启动会自动生成他们本机的配置,并在「系统设置」里填自己的 API Key。" echo "若对方电脑装过旧版:把包解压覆盖到原目录即可(不要先删旧目录)," echo "其历史 config.json / session.json 会被新版直接读取,API Key 与 Cookie 无需重填。"