91 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
/*
 | 
						||
 * vite配置
 | 
						||
 *
 | 
						||
 * @Author:    1024创新实验室-主任:卓大
 | 
						||
 * @Date:      2022-05-02 23:44:56
 | 
						||
 * @Wechat:    zhuda1024
 | 
						||
 * @Email:     lab1024@163.com
 | 
						||
 * @Copyright  1024创新实验室 ( https://1024lab.net ),Since 2012
 | 
						||
 */
 | 
						||
import { resolve } from 'path';
 | 
						||
import vue from '@vitejs/plugin-vue';
 | 
						||
import customVariables from '/@/theme/custom-variables';
 | 
						||
 | 
						||
const pathResolve = (dir) => {
 | 
						||
  return resolve(__dirname, '.', dir);
 | 
						||
};
 | 
						||
export default {
 | 
						||
  base: process.env.NODE_ENV === 'production' ? '/' : '/',
 | 
						||
  root: process.cwd(),
 | 
						||
  resolve: {
 | 
						||
    alias: [
 | 
						||
      // 国际化替换
 | 
						||
      {
 | 
						||
        find: 'vue-i18n',
 | 
						||
        replacement: 'vue-i18n/dist/vue-i18n.cjs.js',
 | 
						||
      },
 | 
						||
      // 绝对路径重命名:/@/xxxx => src/xxxx
 | 
						||
      {
 | 
						||
        find: /\/@\//,
 | 
						||
        replacement: pathResolve('src') + '/',
 | 
						||
      },
 | 
						||
      {
 | 
						||
        find: /^~/,
 | 
						||
        replacement: '',
 | 
						||
      },
 | 
						||
    ],
 | 
						||
  },
 | 
						||
  // 服务端渲染
 | 
						||
  server: {
 | 
						||
    host: '0.0.0.0',
 | 
						||
    port: 8080
 | 
						||
  },
 | 
						||
  plugins: [vue()],
 | 
						||
  optimizeDeps: {
 | 
						||
    include: ['ant-design-vue/es/locale/zh_CN', 'dayjs/locale/zh-cn', 'ant-design-vue/es/locale/en_US'],
 | 
						||
    exclude: ['vue-demi'],
 | 
						||
  },
 | 
						||
  build: {
 | 
						||
    // 清除console和debugger
 | 
						||
    terserOptions: {
 | 
						||
      compress: {
 | 
						||
        drop_console: true,
 | 
						||
        drop_debugger: true,
 | 
						||
      },
 | 
						||
    },
 | 
						||
    rollupOptions: {
 | 
						||
      output: {
 | 
						||
        //配置这个是让不同类型文件放在不同文件夹,不会显得太乱
 | 
						||
        chunkFileNames: 'js/[name]-[hash].js',
 | 
						||
        entryFileNames: 'js/[name]-[hash].js',
 | 
						||
        assetFileNames: '[ext]/[name]-[hash].[ext]',
 | 
						||
        manualChunks(id) {
 | 
						||
          //静态资源分拆打包
 | 
						||
          if (id.includes('node_modules')) {
 | 
						||
            return id.toString().split('node_modules/')[1].split('/')[0].toString();
 | 
						||
          }
 | 
						||
        },
 | 
						||
      },
 | 
						||
    },
 | 
						||
    target: 'esnext',
 | 
						||
    outDir: 'dist', // 指定输出路径
 | 
						||
    assetsDir: 'assets', // 指定生成静态文件目录
 | 
						||
    assetsInlineLimit: '4096', // 小于此阈值的导入或引用资源将内联为 base64 编码
 | 
						||
    chunkSizeWarningLimit: 500, // chunk 大小警告的限制
 | 
						||
    minify: 'terser', // 混淆器,terser构建后文件体积更小
 | 
						||
    emptyOutDir: true, //打包前先清空原有打包文件
 | 
						||
  },
 | 
						||
  css: {
 | 
						||
    preprocessorOptions: {
 | 
						||
      less: {
 | 
						||
        modifyVars: customVariables,
 | 
						||
        javascriptEnabled: true,
 | 
						||
      },
 | 
						||
    },
 | 
						||
  },
 | 
						||
  define: {
 | 
						||
    __INTLIFY_PROD_DEVTOOLS__: false,
 | 
						||
    'process.env': process.env,
 | 
						||
  },
 | 
						||
};
 |