vite插件-打包版本号自增
js
import { Plugin } from 'vite'
import fs from 'fs'
import path from 'path';
const incrementVersion = (version: string) => {
const parts = version.split('.').map(Number);
parts[2]++;
if (parts[2] > 9) {
parts[2] = 0;
parts[1]++;
if (parts[1] > 9) {
parts[1] = 0;
parts[0]++;
}
}
return parts.join('.');
}
export default function autoIncrementVersion(): Plugin {
return {
name: 'vite:autoIncrementVersion',
apply: 'build',
buildStart(options) {
if (options) {
const pkg = JSON.parse(fs.readFileSync(path.resolve(__dirname, "../package.json"), 'utf8'))
pkg.version = incrementVersion(pkg.version)
fs.writeFileSync(path.resolve(__dirname, "../package.json"), JSON.stringify(pkg, null, 2))
}
},
}
}
使用
js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import autoIncrementVersion from './vite-plugin'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [vue(), autoIncrementVersion()],
})