91 lines
2.2 KiB
JavaScript
91 lines
2.2 KiB
JavaScript
import react from '@vitejs/plugin-react'
|
|
import { defineConfig } from 'vite'
|
|
import eslintPlugin from 'vite-plugin-eslint'
|
|
import svgr from 'vite-plugin-svgr'
|
|
import svgo from 'vite-plugin-svgo'
|
|
|
|
export default defineConfig({
|
|
base: '/',
|
|
plugins: [react(), svgo(), svgr(), eslintPlugin()],
|
|
build: {
|
|
outDir: 'build',
|
|
chunkSizeWarningLimit: 1500,
|
|
rollupOptions: {
|
|
output: {
|
|
manualChunks(id) {
|
|
// --- CodeMirror
|
|
if (id.includes('node_modules/@codemirror')) {
|
|
return 'codemirror'
|
|
}
|
|
|
|
// --- Lezer
|
|
if (id.includes('node_modules/@lezer')) {
|
|
return 'lezer'
|
|
}
|
|
|
|
// --- Ant Design
|
|
if (id.includes('node_modules/antd')) {
|
|
return 'antd'
|
|
}
|
|
|
|
if (id.includes('node_modules/@ant-design/icons')) {
|
|
return 'ant-icons'
|
|
}
|
|
|
|
if (id.includes('node_modules/@ant-design/charts')) {
|
|
return 'ant-charts'
|
|
}
|
|
|
|
// --- AntV
|
|
if (id.includes('node_modules/@antv')) {
|
|
return 'antv'
|
|
}
|
|
|
|
// --- Three.js
|
|
if (id.includes('node_modules/three')) {
|
|
return 'three'
|
|
}
|
|
|
|
// --- GCode Preview
|
|
if (id.includes('node_modules/gcode-preview')) {
|
|
return 'gcode-preview'
|
|
}
|
|
|
|
// --- Online 3D Viewer
|
|
if (id.includes('node_modules/online-3d-viewer')) {
|
|
return 'online-3d-viewer'
|
|
}
|
|
|
|
// --- Lodash
|
|
if (id.includes('node_modules/lodash')) {
|
|
return 'lodash'
|
|
}
|
|
|
|
// --- tsparticles
|
|
if (
|
|
id.includes('node_modules/@tsparticles') ||
|
|
id.includes('node_modules/tsparticles')
|
|
) {
|
|
return 'tsparticles'
|
|
}
|
|
|
|
// --- React vendor
|
|
if (
|
|
id.includes('node_modules/react') ||
|
|
id.includes('node_modules/react-dom') ||
|
|
id.includes('node_modules/react-router-dom')
|
|
) {
|
|
return 'react-vendor'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
server: {
|
|
allowedHosts: ['dev.tombutcher.work'],
|
|
host: '0.0.0.0',
|
|
port: 5173,
|
|
open: false
|
|
}
|
|
})
|