import path from 'path'; import { defineConfig } from 'vite'; import { createVuePlugin } from 'vite-plugin-vue2'; import viteEslint from 'vite-plugin-eslint'; import StylelintPlugin from 'vite-plugin-stylelint'; import { chunkSplitPlugin } from 'vite-plugin-chunk-split'; import tdocPlugin from '@ldesign/md-to-vue'; const publicPathMap = { preview: '/mobile/', intranet: '/mobile/', production: '/mobile/', }; export default ({ mode }) => defineConfig({ base: publicPathMap[mode], resolve: { alias: { '@ldesign/mobile-vue/es': path.resolve(__dirname, '../../packages/mobile-vue'), '@ldesign/mobile-vue': path.resolve(__dirname, '../../packages/mobile-vue'), vue: 'vue/dist/vue.esm.js', }, }, build: { rollupOptions: { input: { sites: 'index.html', mobile: 'mobile.html', }, }, sourcemap: true, }, server: { port: 17000, host: '0.0.0.0', fs: { strict: false, }, hmr: { overlay: true } }, optimizeDeps: { force: true }, plugins: [ viteEslint({ fix: true, emitWarning: false, exclude: ['**/node_modules/**', '**/site-component/**', '**/icons/**', '**/utils/**'], }), StylelintPlugin({ include: ['**/*.less'], emitError: false, }), createVuePlugin({ include: /(\.md|\.vue)$/, jsx: true, }), tdocPlugin({ platform: 'mobile', }), chunkSplitPlugin() ], });