import { fileURLToPath } from 'node:url' 
 | 
import commonjs from 'vite-plugin-commonjs' 
 | 
  
 | 
import { defineConfig } from 'vite' 
 | 
import vue from '@vitejs/plugin-vue' 
 | 
import vueJsx from '@vitejs/plugin-vue-jsx' 
 | 
import { visualizer } from 'rollup-plugin-visualizer' 
 | 
  
 | 
// https://vitejs.dev/config/ 
 | 
export default defineConfig({ 
 | 
  plugins: [ 
 | 
    commonjs(), 
 | 
    // commonjs({ 
 | 
    //   // 这里可以配置插件的选项,例如指定需要转换的模块等 
 | 
    //   include: 'node_modules/**', // 包含node_modules下的所有模块 
 | 
    // }), 
 | 
    vue(), 
 | 
    vueJsx(), 
 | 
    visualizer({ 
 | 
      filename: 'report_form_rollup-plugin-visualizer.html' 
 | 
    }), 
 | 
    //引用后提示: 
 | 
    // requireTransform({ 
 | 
    //   fileRegex: /.js$|.ts$/ 
 | 
    // }) 
 | 
  ], 
 | 
  define: { 
 | 
  }, 
 | 
  optimizeDeps: { 
 | 
    exclude: ['vue'] 
 | 
  }, 
 | 
  build: { 
 | 
    commonjsOptions: { 
 | 
      transformMixedEsModules: true 
 | 
    }, 
 | 
    rollupOptions: { 
 | 
      output: { 
 | 
        //每个node_modules模块分成一个js文件 
 | 
        manualChunks(id) { 
 | 
          if (id.includes('node_modules')) { 
 | 
            return id.toString().split('node_modules/')[1].split('/')[0].toString() 
 | 
          } 
 | 
        }, 
 | 
        // 用于从入口点创建的块的打包输出格式[name]表示文件名,[hash]表示该文件内容hash值 
 | 
        // entryFileNames: 'assets/js/[name].[hash].js', // 用于命名代码拆分时创建的共享块的输出命名 
 | 
        // chunkFileNames: 'assets/js/[name].[hash].js', // 用于输出静态资源的命名,[ext]表示文件扩展名 
 | 
        // assetFileNames: 'assets/[ext]/[name].[hash].[ext]' 
 | 
        entryFileNames: 'assets/js/[hash].js', // 用于命名代码拆分时创建的共享块的输出命名 
 | 
        chunkFileNames: 'assets/js/[hash].js', // 用于输出静态资源的命名,[ext]表示文件扩展名 
 | 
        assetFileNames: 'assets/[ext]/[hash].[ext]' 
 | 
      } 
 | 
    }, 
 | 
    // outDir: 'dist', // 输出目录,默认为 'dist' 
 | 
    // rollupOptions: { 
 | 
    //   input: { 
 | 
    //     main: 'src/main.js', // 你的入口文件 
 | 
    //   } 
 | 
    // }, 
 | 
    sourcemap: false //生成源映射文件 
 | 
  }, 
 | 
  publicDir: 'public', // 这里指定了 public 文件夹的位置 
 | 
  css: { 
 | 
    //查看CSS属于哪个css文件 
 | 
    devSourcemap: false 
 | 
  }, 
 | 
  server: { 
 | 
    port: 8081 
 | 
    // proxy: { 
 | 
    //   '/api': { 
 | 
    //     target: 'http://xxxx.com', 
 | 
    //     changeOrigin: true, 
 | 
    //     rewrite: (path) => path.replace(/^\/api/, '') 
 | 
    //   } 
 | 
    // } 
 | 
  }, 
 | 
  resolve: { 
 | 
    extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue', '.mjs'], 
 | 
    alias: { 
 | 
      '@': fileURLToPath(new URL('./src', import.meta.url)) 
 | 
    } 
 | 
  } 
 | 
}) 
 |