rename-subpackages.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import os
  2. import json
  3. ROOT = "D:/work/绿水青山/清道夫App/src"
  4. # 1. 批量替换文件内容中的路径
  5. for dirpath, _, filenames in os.walk(ROOT):
  6. for filename in filenames:
  7. if filename.endswith((".vue", ".ts", ".js", ".json")):
  8. filepath = os.path.join(dirpath, filename)
  9. try:
  10. with open(filepath, "r", encoding="utf-8") as f:
  11. content = f.read()
  12. new_content = content.replace("subPackages/", "subpackages/")
  13. new_content = new_content.replace("subPackages", "subpackages")
  14. if new_content != content:
  15. with open(filepath, "w", encoding="utf-8") as f:
  16. f.write(new_content)
  17. print(f"Updated content: {filepath}")
  18. except Exception as e:
  19. print(f"Skip {filepath}: {e}")
  20. # 2. 单独处理 pages.json 的 subPackages 字段名需要保留(uni-app 配置字段名必须叫 subPackages)
  21. pages_json = "D:/work/绿水青山/清道夫App/src/pages.json"
  22. with open(pages_json, "r", encoding="utf-8") as f:
  23. data = json.load(f)
  24. # root 路径改为 subpackages
  25. for pkg in data.get("subPackages", []):
  26. if "root" in pkg:
  27. pkg["root"] = pkg["root"].replace("subPackages", "subpackages")
  28. # preloadRule 里的 packages 也改
  29. for rule in data.get("preloadRule", {}).values():
  30. if "packages" in rule:
  31. rule["packages"] = [p.replace("subPackages", "subpackages") for p in rule["packages"]]
  32. with open(pages_json, "w", encoding="utf-8") as f:
  33. json.dump(data, f, ensure_ascii=False, indent=2)
  34. print("Updated pages.json root paths")
  35. print("Done")