diff --git a/nkebao/devlop.py b/nkebao/devlop.py new file mode 100644 index 00000000..79c7fae2 --- /dev/null +++ b/nkebao/devlop.py @@ -0,0 +1,66 @@ +import os +import zipfile +import paramiko + +# 配置 +local_dir = './dist' # 本地要打包的目录 +zip_name = './dist/dist.zip' +# 上传到服务器的 zip 路径 +remote_path = '/www/wwwroot/auto-devlop/ckb-operation/dist.zip' # 服务器上的临时zip路径 +server_ip = '42.194.245.239' +server_port = 6523 +server_user = 'yongpxu' +server_pwd = 'Aa123456789.' +# 服务器 dist 相关目录 +remote_base_dir = '/www/wwwroot/auto-devlop/ckb-operation' +dist_dir = f'{remote_base_dir}/dist' +dist1_dir = f'{remote_base_dir}/dist1' +dist2_dir = f'{remote_base_dir}/dist2' + +# 1. 先运行 yarn build +print('开始执行 yarn build...') +ret = os.system('yarn build') +if ret != 0: + print('yarn build 失败,终止部署!') + exit(1) +print('yarn build 完成') + +# 2. 打包 +with zipfile.ZipFile(zip_name, 'w', zipfile.ZIP_DEFLATED) as zipf: + for root, dirs, files in os.walk(local_dir): + for file in files: + filepath = os.path.join(root, file) + arcname = os.path.relpath(filepath, local_dir) + zipf.write(filepath, arcname) +print('本地打包完成') + +# 2. 上传 +transport = paramiko.Transport((server_ip, server_port)) +transport.connect(username=server_user, password=server_pwd) +sftp = paramiko.SFTPClient.from_transport(transport) +sftp.put(zip_name, remote_path) +sftp.close() +transport.close() +print('上传到服务器完成') + +# 3. 远程解压并覆盖 +ssh = paramiko.SSHClient() +ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) +ssh.connect(server_ip, server_port, server_user, server_pwd) +commands = [ + # 1. 解压 dist.zip 到 dist2 + f'unzip -o {remote_path} -d {dist2_dir}', + # 2. 如果 dist 存在,重命名为 dist1 + f'if [ -d {dist_dir} ]; then mv {dist_dir} {dist1_dir}; fi', + # 3. dist2 改名为 dist + f'mv {dist2_dir} {dist_dir}', + # 4. 删除 dist1 + f'rm -rf {dist1_dir}', + # 5. 删除 dist.zip + f'rm {remote_path}' +] +for cmd in commands: + stdin, stdout, stderr = ssh.exec_command(cmd) + print(stdout.read().decode(), stderr.read().decode()) +ssh.close() +print('服务器解压并覆盖完成,部署成功!') diff --git a/nkebao/src/main.tsx b/nkebao/src/main.tsx index 97bc4497..62b34a6c 100644 --- a/nkebao/src/main.tsx +++ b/nkebao/src/main.tsx @@ -2,7 +2,7 @@ import React from "react"; import { createRoot } from "react-dom/client"; import App from "./App"; import "./styles/global.scss"; -import VConsole from "vconsole"; -new VConsole(); +// import VConsole from "vconsole"; +// new VConsole(); const root = createRoot(document.getElementById("root")!); root.render();