You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

45 lines
928 B

import { execSync } from 'child_process'
import vue from '@vitejs/plugin-vue'
import WindiCSS from 'vite-plugin-windicss'
import { resolve } from "path"
import pkg from './package.json'
export default {
plugins: [
vue(),
WindiCSS()
],
define: {
APP_TITLE: JSON.stringify(pkg.name),
APP_VERSION: JSON.stringify(buildVersion()),
APP_REPOSITORY: JSON.stringify(pkg.repository),
APP_LICENSE: JSON.stringify(pkg.license),
},
resolve: {
alias: {
"@": resolve(__dirname, "src"),
},
},
}
// FUNCTIONS
//----------
function buildVersion(): string {
const version = pkg.version
if (!isGitCommand()) {
return version
}
const dirty = Number(execSync("git status -s | wc -l").toString())
return dirty > 0 ? `${version}${dirty}` : version
}
function isGitCommand(): boolean {
try {
execSync("command -v git")
return true
} catch (e) {
return false
}
}