-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvite.config.js
More file actions
62 lines (58 loc) · 1.62 KB
/
Copy pathvite.config.js
File metadata and controls
62 lines (58 loc) · 1.62 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
import fs from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';
import { dirname } from 'path';
import { svelte } from '@sveltejs/vite-plugin-svelte';
import tailwindcss from '@tailwindcss/vite';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
function minifyJsonPlugin() {
return {
name: 'minify-json',
apply: 'build',
closeBundle() {
// 1. 复制 alias.json 到 dist 目录
const rootAlias = path.resolve(__dirname, 'alias.json');
const publicDir = path.resolve(__dirname, 'dist');
const publicAlias = path.join(publicDir, 'alias.json');
if (fs.existsSync(rootAlias)) {
if (!fs.existsSync(publicDir)) fs.mkdirSync(publicDir);
fs.copyFileSync(rootAlias, publicAlias);
}
// 2. 压缩 dist 下所有 json
const files = fs.readdirSync(publicDir);
files.forEach(file => {
if (file.endsWith('.json')) {
const filePath = path.join(publicDir, file);
const content = fs.readFileSync(filePath, 'utf-8');
const minified = JSON.stringify(JSON.parse(content));
fs.writeFileSync(filePath, minified, 'utf-8');
}
});
}
};
}
export default {
root: '.',
publicDir: 'public',
build: {
outDir: 'dist',
assetsDir: './assets',
rollupOptions: {
input: {
main: 'index.html'
}
}
},
plugins: [svelte(), minifyJsonPlugin(), tailwindcss()],
define: {
global: 'globalThis'
},
resolve: {
alias: {
path: 'path-browserify',
fs: false,
$lib: path.resolve(__dirname, 'src/lib')
}
}
};