cinny/vite.config.js

109 lines
3.3 KiB
JavaScript
Raw Normal View History

import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import { wasm } from '@rollup/plugin-wasm';
import { viteStaticCopy } from 'vite-plugin-static-copy';
2023-01-29 04:54:03 +00:00
import { NodeGlobalsPolyfillPlugin } from '@esbuild-plugins/node-globals-polyfill';
import rollupNodePolyFill from 'rollup-plugin-node-polyfills'
import { svgLoader } from './viteSvgLoader';
const copyFiles = {
targets: [
{
src: 'node_modules/@matrix-org/olm/olm.wasm',
dest: '',
},
{
src: '_redirects',
dest: '',
},
{
src: 'config.json',
dest: '',
},
{
src: 'public/res/android',
dest: 'public/',
}
],
}
2023-01-29 04:54:03 +00:00
const nodePolyfillAliases = {
2023-01-29 06:32:26 +00:00
// https://github.com/ionic-team/rollup-plugin-node-polyfills/tree/master/polyfills
2023-01-29 04:54:03 +00:00
util: 'rollup-plugin-node-polyfills/polyfills/util',
2023-01-29 05:06:32 +00:00
// sys: 'util',
2023-01-29 04:54:03 +00:00
// 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',
2023-01-29 05:06:32 +00:00
// punycode: 'rollup-plugin-node-polyfills/polyfills/punycode',
2023-01-29 04:54:03 +00:00
url: 'rollup-plugin-node-polyfills/polyfills/url',
2023-01-29 05:06:32 +00:00
// 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',
2023-01-29 04:54:03 +00:00
assert: 'rollup-plugin-node-polyfills/polyfills/assert',
2023-01-29 05:06:32 +00:00
// 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',
2023-01-29 04:54:03 +00:00
buffer: 'rollup-plugin-node-polyfills/polyfills/buffer-es6',
2023-01-29 06:32:26 +00:00
// process: 'rollup-plugin-node-polyfills/polyfills/process-es6',
2023-01-29 04:54:03 +00:00
}
export default defineConfig({
appType: 'spa',
publicDir: false,
server: {
port: 8080,
host: true,
},
plugins: [
viteStaticCopy(copyFiles),
svgLoader(),
wasm(),
react(),
],
2023-01-29 04:54:03 +00:00
resolve: {
alias: nodePolyfillAliases
},
optimizeDeps: {
esbuildOptions: {
define: {
global: 'globalThis'
},
plugins: [
// Enable esbuild polyfill plugins
NodeGlobalsPolyfillPlugin({
process: false,
buffer: true,
}),
]
}
2023-01-29 06:32:26 +00:00
},
build: {
outDir: 'dist',
sourcemap: true,
copyPublicDir: false,
2023-01-29 04:54:03 +00:00
rollupOptions: {
plugins: [
// Enable rollup polyfills plugin
// used during production bundling
2023-01-29 06:32:26 +00:00
rollupNodePolyFill({ crypto: true, fs: true }),
2023-01-29 04:54:03 +00:00
]
}
},
});