diff --git a/frontend/admin/package.json b/frontend/admin/package.json index 95d00836e..bc61c1485 100644 --- a/frontend/admin/package.json +++ b/frontend/admin/package.json @@ -8,7 +8,9 @@ "serve": "node src/libs/start.js && vite --mode dev --open", "dev": "node src/libs/start.js && vite --mode dev --open", "build": "vite build --mode production", + "postbuild": "node scripts/publishAdmin.mjs", "build:ext": "node scripts/build-extensions.js", + "postbuild:ext": "node scripts/publishAdmin.mjs", "dev:ext": "node scripts/build-extensions.js --watch", "build:all": "npm run build && npm run build:ext", "preview": "vite preview --mode production", diff --git a/frontend/admin/scripts/publishAdmin.mjs b/frontend/admin/scripts/publishAdmin.mjs new file mode 100644 index 000000000..da7245bb4 --- /dev/null +++ b/frontend/admin/scripts/publishAdmin.mjs @@ -0,0 +1,17 @@ +import fs from 'node:fs'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const projectRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..'); +const sourceDir = path.join(projectRoot, 'dist'); +const targetDir = path.resolve(projectRoot, '../../backend/public/admin'); + +if (!fs.existsSync(sourceDir)) { + throw new Error(`管理端构建产物不存在:${sourceDir}`); +} + +fs.rmSync(targetDir, { recursive: true, force: true }); +fs.mkdirSync(targetDir, { recursive: true }); +fs.cpSync(sourceDir, targetDir, { recursive: true }); + +console.log(`管理端构建产物已发布到 ${targetDir}`); diff --git a/frontend/uni-app/package.json b/frontend/uni-app/package.json index 4132c0b28..d5543bb58 100644 --- a/frontend/uni-app/package.json +++ b/frontend/uni-app/package.json @@ -6,6 +6,7 @@ "scripts": { "dev:h5": "uni", "build:h5": "uni build", + "postbuild:h5": "node scripts/publishH5.mjs", "dev:mp-weixin": "uni -p mp-weixin", "build:mp-weixin": "uni build -p mp-weixin", "dev:mp-alipay": "uni -p mp-alipay", diff --git a/frontend/uni-app/scripts/publishH5.mjs b/frontend/uni-app/scripts/publishH5.mjs new file mode 100644 index 000000000..cbeed2c95 --- /dev/null +++ b/frontend/uni-app/scripts/publishH5.mjs @@ -0,0 +1,20 @@ +import fs from 'node:fs'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const projectRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..'); +const sourceDir = path.join(projectRoot, 'dist', 'build', 'h5'); +const targetDir = path.resolve(projectRoot, '../../backend/public'); +const generatedDirectories = ['assets', 'pages', 'static']; + +if (!fs.existsSync(sourceDir)) { + throw new Error(`uni-app H5 构建产物不存在:${sourceDir}`); +} + +for (const directory of generatedDirectories) { + fs.rmSync(path.join(targetDir, directory), { recursive: true, force: true }); +} +fs.mkdirSync(targetDir, { recursive: true }); +fs.cpSync(sourceDir, targetDir, { recursive: true }); + +console.log(`uni-app H5 构建产物已发布到 ${targetDir}`);