vite.config.ts 1.8 KB

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