重构部署流程,统一使用 scripts/devlop.py 进行宝塔服务器部署,简化小程序上传步骤,更新相关文档以反映新流程和依赖项。删除不再使用的脚本和配置文件,提升项目可维护性。

This commit is contained in:
2026-01-31 21:52:15 +08:00
parent 70497d3047
commit 7a3033b4a0
20 changed files with 749 additions and 1017 deletions

130
scripts/autosysc-weixin.py Normal file
View File

@@ -0,0 +1,130 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Soul 创业派对 - 小程序一键上传(项目根目录运行)
将**当前仓库 miniprogram/ 目录的小程序代码**完整上传到微信公众平台。
AppID、项目路径等见 miniprogram/project.config.json 或 .cursorrules。
说明:
- 本脚本是「把仓库里已有小程序代码原样上传」,不是「把 Web 站转成小程序」。
- WebNext.js与小程序WXML/WXSS是两套技术栈无法 1:1 自动转换;
本仓库已提供原生小程序实现miniprogram/),本脚本负责将其上传到公众号后台。
使用(在项目根目录):
python scripts/autosysc-weixin.py
# 版本号与描述在 miniprogram/upload.js 或 上传小程序.py 的 CONFIG 中修改
前置条件:
- miniprogram/private.key在微信公众平台「开发管理 → 开发设置 → 小程序代码上传密钥」生成并下载,重命名为 private.key 放到 miniprogram/ 下。
- 已安装微信开发者工具(可选,用于 CLI 方式)或 Node.js + miniprogram-ci用于 CI 方式)。
"""
from __future__ import print_function
import sys
import json
import subprocess
import argparse
from pathlib import Path
# 项目根目录
ROOT = Path(__file__).resolve().parent.parent
MINIPROGRAM_DIR = ROOT / "miniprogram"
UPLOAD_SCRIPT = MINIPROGRAM_DIR / "上传小程序.py"
def get_appid():
"""从 miniprogram/project.config.json 或 .cursorrules 读取 AppID"""
config_file = MINIPROGRAM_DIR / "project.config.json"
if config_file.exists():
try:
with open(config_file, "r", encoding="utf-8") as f:
data = json.load(f)
appid = data.get("appid", "").strip()
if appid:
return appid
except Exception:
pass
# 与 .cursorrules 中一致
return "wxb8bbb2b10dec74aa"
def check_miniprogram():
"""检查 miniprogram 目录和必要文件"""
if not MINIPROGRAM_DIR.is_dir():
print("❌ 未找到 miniprogram 目录: %s" % MINIPROGRAM_DIR)
return False
app_json = MINIPROGRAM_DIR / "app.json"
if not app_json.exists():
print("❌ miniprogram 目录下未找到 app.json请确认是否为小程序项目根目录")
return False
return True
def check_private_key():
"""检查上传密钥是否存在"""
key_file = MINIPROGRAM_DIR / "private.key"
if key_file.exists():
return True
print("❌ 未找到上传密钥: miniprogram/private.key")
print("")
print("请按以下步骤获取:")
print(" 1. 打开 https://mp.weixin.qq.com/ 登录小程序后台")
print(" 2. 开发管理 → 开发设置 → 小程序代码上传密钥")
print(" 3. 点击「生成」并下载密钥文件")
print(" 4. 将 private.*.key 重命名为 private.key")
print(" 5. 放到项目 miniprogram/ 目录下")
print("")
return False
def main():
parser = argparse.ArgumentParser(description="小程序代码一键上传到微信公众平台")
parser.parse_args()
print("=" * 60)
print(" Soul 创业派对 - 小程序一键上传")
print("=" * 60)
print(" 项目根目录: %s" % ROOT)
print(" 小程序目录: %s" % MINIPROGRAM_DIR)
print(" AppID: %s" % get_appid())
print("=" * 60)
if not check_miniprogram():
return 1
if not check_private_key():
return 1
if not UPLOAD_SCRIPT.exists():
print("❌ 未找到上传脚本: %s" % UPLOAD_SCRIPT)
return 1
print("")
print("🚀 调用 miniprogram/上传小程序.py 执行上传...")
print("")
cmd = [sys.executable, str(UPLOAD_SCRIPT)]
try:
r = subprocess.run(
cmd,
cwd=str(MINIPROGRAM_DIR),
timeout=300,
)
if r.returncode == 0:
print("")
print(" 后台提交审核: https://mp.weixin.qq.com/ → 版本管理 → 开发版本 → 提交审核")
print("=" * 60)
return 0
return r.returncode
except subprocess.TimeoutExpired:
print("❌ 上传超时(超过 5 分钟)")
return 1
except Exception as e:
print("❌ 执行失败: %s" % e)
return 1
if __name__ == "__main__":
sys.exit(main())