-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathvite.config.ts
68 lines (64 loc) · 1.75 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
56
57
58
59
60
61
62
63
64
65
66
67
68
/// <reference types="vitest" />
import path from 'path';
import Vue from '@vitejs/plugin-vue';
import vueJsx from '@vitejs/plugin-vue-jsx';
import { UserConfig, defineConfig } from 'vite';
import shelljs from 'shelljs';
import AfterBuild from './scripts/after-build';
import pkg from './package.json';
import removeCss from './scripts/rollup-remove-css-transformer';
const resolvePath = (pathName: string) => path.resolve(__dirname, pathName);
export default defineConfig(({ mode }: UserConfig) => {
return {
resolve: {
alias: {
'sandpack-vue3': resolvePath('./src/index.ts'),
},
},
define: {
__UNSTYLED_COMPONENTS__: true,
},
build: {
target: ['chrome52'],
minify: true,
lib: {
fileName: (type) => {
if (type === 'es') return 'unstyled.mjs';
if (type === 'cjs') return 'unstyled.js';
return 'unstyled.cjs';
},
entry: path.resolve(__dirname, 'src/index.ts'),
formats: ['es', 'cjs'],
},
emptyOutDir: false,
outDir: path.resolve(__dirname, 'dist'),
// sourcemap: true,
rollupOptions: {
output: {
exports: 'named',
},
external: [
...Object.keys(pkg.dependencies),
...Object.keys(pkg.devDependencies),
...Object.keys(pkg.peerDependencies),
],
plugins: [
removeCss(),
],
},
},
plugins: [
Vue(),
vueJsx(),
AfterBuild(() => {
shelljs.cp(resolvePath('./dist/index.d.ts'), resolvePath('./dist/unstyled.d.ts'));
}),
],
// https://github.com/vitest-dev/vitest
test: {
globals: true,
environment: 'jsdom',
setupFiles: ['./setupTests.ts'],
},
} as UserConfig;
});