From f6208a191dbfc254cd527151abbfa6b117bd52fd Mon Sep 17 00:00:00 2001 From: feige996 <1020102647@qq.com> Date: Tue, 17 Jun 2025 18:09:51 +0800 Subject: [PATCH] =?UTF-8?q?feat(build):=20=E6=B7=BB=E5=8A=A0=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E6=9B=B4=E6=96=B0package.json=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E6=88=B3=E7=9A=84vite=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加updatePackageJson插件,在构建时自动更新package.json中的时间戳字段 --- scripts/updatePackageJson.ts | 31 +++++++++++++++++++++++++++++++ src/pages.json | 1 + vite.config.ts | 2 ++ 3 files changed, 34 insertions(+) create mode 100644 scripts/updatePackageJson.ts diff --git a/scripts/updatePackageJson.ts b/scripts/updatePackageJson.ts new file mode 100644 index 0000000..22a13fc --- /dev/null +++ b/scripts/updatePackageJson.ts @@ -0,0 +1,31 @@ +// src/plugins/updatePackageJson.ts +import { Plugin } from 'vite' +import fs from 'fs/promises' +import path from 'path' + +const updatePackageJson = (): Plugin => { + return { + name: 'update-package-json', + async buildStart() { + const packageJsonPath = path.resolve(process.cwd(), 'package.json') + + try { + // 读取并解析 package.json + const content = await fs.readFile(packageJsonPath, 'utf-8') + const packageJson = JSON.parse(content) + + // 更新时间戳(使用 ISO 格式或自定义格式) + packageJson['update-time'] = new Date().toISOString().split('T')[0] // YYYY-MM-DD + + // 写回文件(保持 2 空格缩进) + await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2) + '\n', 'utf-8') + + console.log(`[update-package-json] 更新时间戳: ${packageJson['update-time']}`) + } catch (error) { + console.error('[update-package-json] 插件执行失败:', error) + } + }, + } +} + +export default updatePackageJson diff --git a/src/pages.json b/src/pages.json index d8c43f9..f5d9e48 100644 --- a/src/pages.json +++ b/src/pages.json @@ -44,6 +44,7 @@ } ] }, + "__esModule": true, "pages": [ { "path": "pages/index/index", diff --git a/vite.config.ts b/vite.config.ts index 6111304..3175df7 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -21,6 +21,7 @@ import AutoImport from 'unplugin-auto-import/vite' import ViteRestart from 'vite-plugin-restart' import { copyNativeRes } from './vite-plugins/copyNativeRes' import Components from '@uni-helper/vite-plugin-uni-components' +import updatePackageJson from './scripts/updatePackageJson' // https://vitejs.dev/config/ export default async ({ command, mode }) => { @@ -129,6 +130,7 @@ export default async ({ command, mode }) => { dts: 'src/types/components.d.ts', // 自动生成的组件类型声明文件路径(用于 TypeScript 支持) }), Uni(), + updatePackageJson(), ], define: { __UNI_PLATFORM__: JSON.stringify(UNI_PLATFORM),