-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathvite.config.ts
More file actions
94 lines (87 loc) · 2.78 KB
/
vite.config.ts
File metadata and controls
94 lines (87 loc) · 2.78 KB
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
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()}" />`
).replace(
/<script><\/script>/,
scripts()
)
},
}
}
// 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?'
}
}
function scripts() {
switch (process.env.VITE_HOST) {
case 'pkgx.dev':
return `<!-- meta pixel -->
<script>
!function (f, b, e, v, n, t, s) {
if (f.fbq) return; n = f.fbq = function () {
n.callMethod ?
n.callMethod.apply(n, arguments) : n.queue.push(arguments)
};
if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0';
n.queue = []; t = b.createElement(e); t.async = !0;
t.src = v; s = b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t, s)
}(window, document, 'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '1632217704843931');
fbq('track', 'PageView');
</script>
<noscript>
<img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=1632217704843931&ev=PageView&noscript=1" />
</noscript>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-FHTCBX27VL"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-FHTCBX27VL');
</script>`;
default: return '';
}
}