-
Notifications
You must be signed in to change notification settings - Fork 6
/
vite.config.ts
55 lines (50 loc) · 1.54 KB
/
vite.config.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
const htmlPlugin = () => {
return {
name: 'html-transform',
transformIndexHtml(html: string) {
return html.replace(
/<title>(.*?)<\/title>/,
`<title>${title()}</title>`
).replace(
/<meta property="og:title" content="(.*?)" \/>/,
`<meta property="og:title" content="${title()}" />`
).replace(
/<meta property="og:description" content="(.*?)" \/>/,
`<meta property="og:description" content="${description()}" />`
).replace(
/<meta name="description" content="(.*?)" \/>/,
`<meta name="description" content="${description()}" />`
)
},
}
}
// https://vitejs.dev/config/
export default defineConfig({
plugins: [react(), htmlPlugin()],
});
function title() {
switch (process.env.VITE_HOST) {
case 'pkgx.sh':
return 'Run Anything'
case 'pkgx.dev':
return 'pkgx, inc.'
case 'mash.pkgx.sh':
return 'mash — The Package Manager for Scripts'
case 'pkgx.app':
return 'The App Store for Open Source'
}
}
function description() {
switch (process.env.VITE_HOST) {
case 'pkgx.sh':
return 'pkgx is a blazingly fast, standalone, cross‐platform binary that runs anything'
case 'pkgx.dev':
return 'Crafters of fine Open Source products'
case 'mash.pkgx.sh':
return 'Mash up millions of Open Source packages into monstrously powerful scripts'
case 'pkgx.app':
return 'OPEN SOURCE IS A TREASURE TROVE. What jewel will you discover today?'
}
}