vite.config.ts 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. /// <reference types="vitest" />
  2. import { defineConfig } from 'vite'
  3. import vue from '@vitejs/plugin-vue'
  4. import banner from 'vite-plugin-banner'
  5. import dts from 'vite-plugin-dts'
  6. import analyze from 'rollup-plugin-analyzer'
  7. /* import { visualizer } from 'rollup-plugin-visualizer' */
  8. import glsl from 'vite-plugin-glsl'
  9. import { resolve } from 'pathe'
  10. import { lightGreen, yellow, gray, bold } from 'kolorist'
  11. import pkg from './package.json'
  12. // eslint-disable-next-line no-console
  13. console.log(`${lightGreen('▲')} ${gray('■')} ${yellow('●')} ${bold('Tres')} v${pkg.version}`)
  14. // https://vitejs.dev/config/
  15. export default defineConfig({
  16. resolve: {
  17. alias: {
  18. '/@': resolve(__dirname, './src'),
  19. },
  20. dedupe: ['@tresjs/cientos'],
  21. },
  22. plugins: [
  23. vue({}),
  24. dts({
  25. insertTypesEntry: true,
  26. }),
  27. glsl(),
  28. banner({
  29. content: `/**\n * name: ${pkg.name}\n * version: v${
  30. pkg.version
  31. }\n * (c) ${new Date().getFullYear()}\n * description: ${pkg.description}\n * author: ${pkg.author}\n */`,
  32. }),
  33. ],
  34. test: {
  35. environment: 'happy-dom',
  36. globals: true,
  37. threads: false,
  38. },
  39. build: {
  40. lib: {
  41. entry: resolve(__dirname, 'src/index.ts'),
  42. name: 'tres',
  43. fileName: 'tres',
  44. },
  45. watch: {
  46. include: [resolve(__dirname, 'src')],
  47. },
  48. copyPublicDir: false,
  49. rollupOptions: {
  50. plugins: [
  51. analyze(),
  52. /* visualizer({
  53. open: true,
  54. gzipSize: true,
  55. brotliSize: true,
  56. }), */
  57. ],
  58. external: ['vue', '@vueuse/core', 'three'],
  59. output: {
  60. exports: 'named',
  61. // Provide global variables to use in the UMD build
  62. // for externalized deps
  63. globals: {
  64. vue: 'Vue',
  65. '@vueuse/core': 'VueUseCore',
  66. three: 'Three',
  67. },
  68. },
  69. },
  70. },
  71. optimizeDeps: {
  72. exclude: ['vue', 'three'],
  73. },
  74. })