webapp/vite.config.ts

44 lines
1.1 KiB
TypeScript
Raw Normal View History

2023-02-17 09:21:02 +00:00
import { defineConfig } from 'vite'
import solidPlugin from 'vite-plugin-solid'
import ssrPlugin from 'vite-plugin-ssr/plugin'
import sassDts from 'vite-plugin-sass-dts'
const PATH_PREFIX = '/src/'
const getDevCssClassPrefix = (filename: string): string => {
return filename
.slice(filename.indexOf(PATH_PREFIX) + PATH_PREFIX.length)
.replace('.module.scss', '')
.replaceAll(/[/?\\]/g, '-')
}
const devGenerateScopedName = (name: string, filename: string, _css: string) =>
getDevCssClassPrefix(filename) + '__' + name
export default defineConfig(({ mode }) => {
const isDev = mode === 'development'
return {
envPrefix: 'PUBLIC_',
plugins: [solidPlugin({ ssr: true }), ssrPlugin({ includeAssetsImportedByServer: true }), sassDts()],
server: {
port: 3000
},
css: {
preprocessorOptions: {
scss: { additionalData: '@import "src/styles/imports";\n' }
},
modules: {
generateScopedName: isDev ? devGenerateScopedName : undefined
}
},
build: {
rollupOptions: {
external: []
},
2023-05-01 18:32:32 +00:00
chunkSizeWarningLimit: 1024,
2023-02-17 09:21:02 +00:00
target: 'esnext'
}
}
})