feat: 本次提交更新内容如下

优化存一版
This commit is contained in:
笔记本里的永平
2025-07-25 18:03:00 +08:00
parent 2234fdf172
commit 0cee80e6d7
7 changed files with 42 additions and 6504 deletions

12
.gitignore vendored
View File

@@ -1,12 +0,0 @@
Store_vue/unpackage/
*.js
Store_vue/node_modules/
Server/.specstory/
Cunkebao/.next/
Cunkebao/.specstory/
.idea/
*.zip
*.cursorindexingignore
Store_vue/.specstory/
Store_vue/.vscode/
SuperAdmin/.specstory/

View File

@@ -4,7 +4,7 @@ import paramiko
# 配置
local_dir = './dist' # 本地要打包的目录
zip_name = './dist/dist.zip'
zip_name = 'dist.zip'
# 上传到服务器的 zip 路径
remote_path = '/www/wwwroot/auto-devlop/ckb-operation/dist.zip' # 服务器上的临时zip路径
server_ip = '42.194.245.239'
@@ -17,50 +17,72 @@ dist_dir = f'{remote_base_dir}/dist'
dist1_dir = f'{remote_base_dir}/dist1'
dist2_dir = f'{remote_base_dir}/dist2'
# 美化输出用的函数
from datetime import datetime
def info(msg):
print(f"\033[36m[INFO {datetime.now().strftime('%H:%M:%S')}] {msg}\033[0m")
def success(msg):
print(f"\033[32m[SUCCESS] {msg}\033[0m")
def error(msg):
print(f"\033[31m[ERROR] {msg}\033[0m")
def step(msg):
print(f"\n\033[35m==== {msg} ====" + "\033[0m")
# 1. 先运行 yarn build
print('开始执行 yarn build...')
step('Step 1: 构建项目 (yarn build)')
info('开始执行 yarn build...')
ret = os.system('yarn build')
if ret != 0:
print('yarn build 失败,终止部署!')
error('yarn build 失败,终止部署!')
exit(1)
print('yarn build 完成')
success('yarn build 完成')
# 2. 打包
step('Step 2: 打包 dist 目录为 zip')
info('开始打包 dist 目录...')
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('本地打包完成')
success('本地打包完成')
# 2. 上传
# 3. 上传
step('Step 3: 上传 zip 包到服务器')
info('开始上传 zip 包...')
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('上传到服务器完成')
success('上传到服务器完成')
# 3. 远程解压并覆盖
# 4. 远程解压并覆盖
step('Step 4: 服务器端解压、切换目录')
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'unzip -oq {remote_path} -d {dist2_dir}', # 静默解压
f'rm {remote_path}',
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}'
f'rm -rf {dist1_dir}'
]
for cmd in commands:
for i, cmd in enumerate(commands, 1):
info(f'执行第{i}步: {cmd}')
stdin, stdout, stderr = ssh.exec_command(cmd)
print(stdout.read().decode(), stderr.read().decode())
out, err = stdout.read().decode(), stderr.read().decode()
# 只打印非 unzip 命令的输出
if i != 1 and out.strip():
print(out.strip())
if err.strip():
error(err.strip())
ssh.close()
print('服务器解压并覆盖完成,部署成功!')
success('服务器解压并覆盖完成,部署成功!')

BIN
nkebao/dist.zip Normal file

Binary file not shown.

6444
nkebao/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
{
"name": "cunkebao",
"license": "MIT",
"version": "3.0.0",
"license": "MIT",
"private": true,
"dependencies": {
"@ant-design/icons": "^5.6.1",

View File

@@ -1,5 +0,0 @@
{
"dependencies": {
"echarts": "^5.6.0"
}
}

View File

@@ -1,23 +0,0 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
echarts@^5.6.0:
version "5.6.0"
resolved "https://registry.yarnpkg.com/echarts/-/echarts-5.6.0.tgz#2377874dca9fb50f104051c3553544752da3c9d6"
integrity sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==
dependencies:
tslib "2.3.0"
zrender "5.6.1"
tslib@2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e"
integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
zrender@5.6.1:
version "5.6.1"
resolved "https://registry.yarnpkg.com/zrender/-/zrender-5.6.1.tgz#e08d57ecf4acac708c4fcb7481eb201df7f10a6b"
integrity sha512-OFXkDJKcrlx5su2XbzJvj/34Q3m6PvyCZkVPHGYpcCJ52ek4U/ymZyfuV1nKE23AyBJ51E/6Yr0mhZ7xGTO4ag==
dependencies:
tslib "2.3.0"