forked from sillsdev/appbuilder-pwa
-
Notifications
You must be signed in to change notification settings - Fork 0
/
vite.config.js
81 lines (80 loc) · 3.7 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
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
// vite.config.js
import { sveltekit } from '@sveltejs/kit/vite';
// polyfill code sourced from: https://medium.com/@ftaioli/using-node-js-builtin-modules-with-vite-6194737c2cd2
// yarn add --dev @esbuild-plugins/node-globals-polyfill
import { NodeGlobalsPolyfillPlugin } from '@esbuild-plugins/node-globals-polyfill';
// yarn add --dev @esbuild-plugins/node-modules-polyfill
import { NodeModulesPolyfillPlugin } from '@esbuild-plugins/node-modules-polyfill';
// You don't need to add this to deps, it's included by @esbuild-plugins/node-modules-polyfill
import rollupNodePolyFill from 'rollup-plugin-node-polyfills';
/** @type {import('vite').UserConfig} */
const config = {
plugins: [sveltekit()],
worker: {
format: 'es',
plugins: () => []
},
resolve: {
alias: {
// This Rollup aliases are extracted from @esbuild-plugins/node-modules-polyfill,
// see https://github.com/remorses/esbuild-plugins/blob/master/node-modules-polyfill/src/polyfills.ts
// process and buffer are excluded because already managed
// by node-globals-polyfill
//util: 'rollup-plugin-node-polyfills/polyfills/util',
//sys: 'util',
//events: 'rollup-plugin-node-polyfills/polyfills/events',
stream: 'rollup-plugin-node-polyfills/polyfills/stream'
// //path: 'rollup-plugin-node-polyfills/polyfills/path',
// querystring: 'rollup-plugin-node-polyfills/polyfills/qs',
// punycode: 'rollup-plugin-node-polyfills/polyfills/punycode',
// url: 'rollup-plugin-node-polyfills/polyfills/url',
// string_decoder: 'rollup-plugin-node-polyfills/polyfills/string-decoder',
// http: 'rollup-plugin-node-polyfills/polyfills/http',
// https: 'rollup-plugin-node-polyfills/polyfills/http',
// os: 'rollup-plugin-node-polyfills/polyfills/os',
// assert: 'rollup-plugin-node-polyfills/polyfills/assert',
// constants: 'rollup-plugin-node-polyfills/polyfills/constants',
// _stream_duplex: 'rollup-plugin-node-polyfills/polyfills/readable-stream/duplex',
// _stream_passthrough:
// 'rollup-plugin-node-polyfills/polyfills/readable-stream/passthrough',
// _stream_readable: 'rollup-plugin-node-polyfills/polyfills/readable-stream/readable',
// _stream_writable: 'rollup-plugin-node-polyfills/polyfills/readable-stream/writable',
// _stream_transform: 'rollup-plugin-node-polyfills/polyfills/readable-stream/transform',
// timers: 'rollup-plugin-node-polyfills/polyfills/timers',
// console: 'rollup-plugin-node-polyfills/polyfills/console',
// vm: 'rollup-plugin-node-polyfills/polyfills/vm',
// zlib: 'rollup-plugin-node-polyfills/polyfills/zlib',
// tty: 'rollup-plugin-node-polyfills/polyfills/tty',
// domain: 'rollup-plugin-node-polyfills/polyfills/domain'
}
},
optimizeDeps: {
esbuildOptions: {
// Node.js global to browser globalThis
define: {
global: 'globalThis'
},
// Enable esbuild polyfill plugins
plugins: [
NodeGlobalsPolyfillPlugin({
process: true,
buffer: true
}),
NodeModulesPolyfillPlugin()
]
}
},
build: {
rollupOptions: {
plugins: [
// Enable rollup polyfills plugin
// used during production bundling
rollupNodePolyFill()
]
}
},
test: {
environment: 'jsdom'
}
};
export default config;