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
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
|
|
}
|
|
}
|