| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- import type { ConfigEnv, UserConfigExport } from "vite";
- import path from "path";
- import autoprefixer from 'autoprefixer';
- import AutoImport from 'unplugin-auto-import/vite';
- import tailwindcss from 'tailwindcss';
- import { include, exclude } from './build/optimize';
- import { createVitePlugins } from './build/plugins';
- export default ({ command, mode }: ConfigEnv): UserConfigExport => {
- return {
- base: "./", // publicPath
- server: {
- host: '0.0.0.0',
- port: 9191,
- proxy: {
- '/apis10': {
- target: 'http://192.168.1.44:9991',
- changeOrigin: true,
- rewrite: (path) => path.replace(new RegExp('^/apis10'), ''),
- },
- '/static': {
- target: 'http://192.168.1.44:11994',
- changeOrigin: true,
- rewrite: (path) => path.replace(new RegExp('^/static'), ''),
- }
- },
- },
- plugins: createVitePlugins(mode),
- optimizeDeps: { include, exclude },
- css: {
- postcss: {
- plugins: [
- tailwindcss,
- autoprefixer({
- // 自动添加前缀
- overrideBrowserslist: [
- 'Android 4.1',
- 'iOS 7.1',
- 'Chrome > 31',
- 'ff > 31',
- 'ie >= 8',
- '> 1%',
- 'last 2 versions',
- 'not dead',
- 'not ie 11',
- //'last 2 versions', // 所有主流浏览器最近2个版本
- ],
- grid: true,
- }),
- ]
- },
- preprocessorOptions: {
- scss: {
- additionalData: `@import "src/assets/style/variable.scss";@import "src/assets/style/mixin.scss";`,
- },
- less: {
- modifyVars: {
- "primary-color": "#d14424",
- "text-color": "#41464b",
- "font-size-base": "13px",
- "border-radius-base": "2px",
- },
- javascriptEnabled: true,
- },
- },
- },
- resolve: {
- alias: {
- "@": path.resolve(__dirname, "src"),
- },
- extensions: [".js", ".ts", ".jsx", ".tsx", ".vue", ".json"],
- },
- build: {
- target: "es2015",
- outDir: path.resolve(__dirname, "dist"),
- minify: "terser",
- terserOptions: {
- compress: {
- //生产环境时移除console
- drop_console: true,
- drop_debugger: true,
- },
- },
- // 关闭文件计算
- reportCompressedSize: false,
- // 关闭生成map文件
- sourcemap: false,
- rollupOptions: {
- output: {
- // chunkFileNames: 'js/[name]-[hash].js', // 引入文件名的名称
- // entryFileNames: 'js/[name]-[hash].js', // 包的入口文件名称
- // assetFileNames: '[ext]/[name]-[hash].[ext]', // 资源文件像 字体,图片等
- manualChunks: {
- vue: ['vue'],
- fabric: ['fabric'],
- 'lodash-es': ['lodash-es'],
- 'opentype.js': ['opentype.js'],
- 'clipper-lib': ['clipper-lib'],
- 'element-plus': ['element-plus'],
- },
- // manualChunks(id, any): string {
- // return id
- // }
- }
- }
- },
- };
- };
|