#!/usr/bin/env python3 # 验证 start.ps1 的 .env 替换逻辑(与 PowerShell 等效) import re DEPLOY_IP = "192.168.1.100" content = """NUXT_PUBLIC_BASE_APIURL=http://127.0.0.1:3001 #NUXT_PUBLIC_BASE_APIURL=/api NUXT_PUBLIC_BASE_SOCKETURL=ws://127.0.0.1:3002 NUXT_PUBLIC_SG_APIURL=http://127.0.0.1:3003 """ content = re.sub(r'^NUXT_PUBLIC_BASE_APIURL=.*', f'NUXT_PUBLIC_BASE_APIURL=http://{DEPLOY_IP}:3001', content, flags=re.MULTILINE) content = re.sub(r'^NUXT_PUBLIC_BASE_SOCKETURL=.*', f'NUXT_PUBLIC_BASE_SOCKETURL=ws://{DEPLOY_IP}:3002', content, flags=re.MULTILINE) content = re.sub(r'^NUXT_PUBLIC_SG_APIURL=.*', f'NUXT_PUBLIC_SG_APIURL=http://{DEPLOY_IP}:3003', content, flags=re.MULTILINE) expected = f"""NUXT_PUBLIC_BASE_APIURL=http://{DEPLOY_IP}:3001 #NUXT_PUBLIC_BASE_APIURL=/api NUXT_PUBLIC_BASE_SOCKETURL=ws://{DEPLOY_IP}:3002 NUXT_PUBLIC_SG_APIURL=http://{DEPLOY_IP}:3003 """ # 注释行不应被替换,检查第一行和第三行 lines = content.split('\n') assert lines[0] == f'NUXT_PUBLIC_BASE_APIURL=http://{DEPLOY_IP}:3001', f"Got {lines[0]}" assert lines[2] == f'NUXT_PUBLIC_BASE_SOCKETURL=ws://{DEPLOY_IP}:3002', f"Got {lines[2]}" assert lines[3] == f'NUXT_PUBLIC_SG_APIURL=http://{DEPLOY_IP}:3003', f"Got {lines[3]}" assert lines[1] == '#NUXT_PUBLIC_BASE_APIURL=/api', f"Comment should not change: {lines[1]}" print("OK: .env replacement logic validated")