import type { PluginOption } from 'vite' import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import legacy from '@vitejs/plugin-legacy' // import copy from 'rollup-plugin-copy' import createHtml from './html' import createAutoImport from './auto-import' import createComponents from './components' import createSetupExtend from './setup-extend' import createSvgIcon from './svg-icon' import createMock from './mock' import createLayouts from './layouts' import createPages from './pages' import createCompression from './compression' import createSpritesmith from './spritesmith' import createBanner from './banner' // import liveplayer from './liveplayer' export default function createVitePlugins(viteEnv, isBuild = false) { const vitePlugins: (PluginOption | PluginOption[])[] = [ vue({ reactivityTransform: true, }), vueJsx(), // copy({ // targets: [ // {src: 'node_modules/@liveqing/liveplayer-v3/dist/component/liveplayer-lib.min.js', dest: 'public/js'}, // ] // }) legacy({ targets: ['firefox < 59', 'chrome < 60'], additionalLegacyPolyfills: ['regenerator-runtime/runtime'], renderLegacyChunks: true, polyfills: [ 'es.symbol', 'es.promise', 'es.promise.finally', 'es/map', 'es/set', 'es.array.filter', 'es.array.for-each', 'es.array.flat-map', 'es.object.define-properties', 'es.object.define-property', 'es.object.get-own-property-descriptor', 'es.object.get-own-property-descriptors', 'es.object.keys', 'es.object.to-string', 'web.dom-collections.for-each', 'esnext.global-this', 'esnext.string.match-all', ], }), ] vitePlugins.push(createHtml(viteEnv, isBuild)) vitePlugins.push(createAutoImport()) vitePlugins.push(createComponents()) vitePlugins.push(createSetupExtend()) vitePlugins.push(createSvgIcon(isBuild)) vitePlugins.push(createMock(viteEnv, isBuild)) vitePlugins.push(createLayouts()) vitePlugins.push(createPages()) // vitePlugins.push(liveplayer()) isBuild && vitePlugins.push(...createCompression(viteEnv)) vitePlugins.push(...createSpritesmith(isBuild)) vitePlugins.push(createBanner()) return vitePlugins }