-
Notifications
You must be signed in to change notification settings - Fork 0
/
vite.config.ts
73 lines (70 loc) · 1.66 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
69
70
71
72
73
import { fileURLToPath, URL } from "node:url";
import inject from "@rollup/plugin-inject";
import vue from "@vitejs/plugin-vue";
import vueJsx from "@vitejs/plugin-vue-jsx";
import nodePolyfills from "rollup-plugin-polyfill-node";
import vuetify, { transformAssetUrls } from "vite-plugin-vuetify";
import { defineConfig } from "vitest/config";
const MODE = process.env.NODE_ENV;
const development = MODE === "development";
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
vue({
template: { transformAssetUrls },
}),
vueJsx(),
vuetify({
autoImport: true,
}),
development &&
nodePolyfills({
include: [
"node_modules/**/*.js",
new RegExp("node_modules/.vite/.*js"),
"http",
"crypto",
],
}),
],
resolve: {
alias: {
"@": fileURLToPath(new URL("./src", import.meta.url)),
//
crypto: "crypto-browserify",
stream: "stream-browserify",
assert: "assert",
},
},
build: {
rollupOptions: {
external: ["@web3-onboard/*"],
plugins: [
nodePolyfills({ include: ["crypto", "http"] }),
inject({ Buffer: ["buffer", "Buffer"] }),
],
},
commonjsOptions: {
transformMixedEsModules: true,
},
},
optimizeDeps: {
exclude: ["@ethersproject/hash", "wrtc", "http"],
include: [
"@web3-onboard/core",
"js-sha3",
"@ethersproject/bignumber",
"color",
"mersenne-twister",
],
esbuildOptions: {
// Node.js global to browser globalThis
define: {
global: "globalThis",
},
},
},
define: {
global: "window",
},
});