-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathvite.config.js
51 lines (49 loc) · 1.37 KB
/
vite.config.js
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
import { resolve } from 'path';
import { defineConfig } from 'vite';
import banner from 'vite-plugin-banner';
import { replaceCodePlugin } from 'vite-plugin-replace';
import { createFilename, getCopyRightNotice, revision, shouldMinify } from '../../scripts/vite/settings.js';
import packageJson from './package.json';
export default defineConfig(() => ({
root: process.cwd(),
publicDir: false,
define: {
'process.env.NODE_ENV': JSON.stringify('production'),
},
plugins: [
banner(getCopyRightNotice(packageJson.name, packageJson.version)),
replaceCodePlugin({
replacements: [
{ from: '__PACKAGE_NAME__', to: packageJson.name },
{ from: '__PACKAGE_VERSION__', to: packageJson.version },
{ from: '__GIT_HASH__', to: revision },
],
}),
],
esbuild: {
jsx: 'automatic',
},
build: {
target: ['chrome60', 'firefox60', 'safari11', 'edge18'],
minify: shouldMinify,
sourcemap: true,
emptyOutDir: false,
lib: {
entry: resolve(process.cwd(), 'src/index.tsx'),
formats: ['esm', 'umd'],
name: 'MagicBell',
fileName: (format) =>
createFilename({
name: 'magicbell',
format: format === 'umd' ? '' : format,
minify: shouldMinify,
}),
},
},
resolve: {
alias: {
react: 'preact/compat',
'react-dom': 'preact/compat',
},
},
}));