import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import importToCDN from 'vite-plugin-cdn-import' import path from 'path' import { VitePWA } from 'vite-plugin-pwa' export default defineConfig(({command, mode}) => { return { server: { host: '0.0.0.0' }, base: './', define: { 'process.env': process.env }, plugins: [ VitePWA({ registerType: 'autoUpdate', manifest: { name: 'Melody', short_name: 'Melody', description: 'Enjoy your music with Melody', theme_color: '#ffffff', start_url:"./mobile.html", icons: [ { src: 'melody-192x192.png', sizes: '192x192', type: 'image/png' }, { src: 'melody-512x512.png', sizes: '512x512', type: 'image/png' } ] } }), vue(), importToCDN({ modules:[ { name: "vue", var: "Vue", path: "https://cdnjs.cloudflare.com/ajax/libs/vue/3.2.33/vue.global.min.js", }, { name: "vue-router", var: "VueRouter", path: "https://cdnjs.cloudflare.com/ajax/libs/vue-router/4.0.14/vue-router.global.min.js", }, { name: "vuex", var: "Vuex", path: 'https://cdnjs.cloudflare.com/ajax/libs/vuex/4.0.2/vuex.global.min.js', }, { name: "axios", var: "axios", path: 'https://cdnjs.cloudflare.com/ajax/libs/axios/0.26.1/axios.min.js', }, { name: "element-plus", var: "ElementPlus", path: 'https://cdnjs.cloudflare.com/ajax/libs/element-plus/2.1.9/index.full.js', css: ["https://cdnjs.cloudflare.com/ajax/libs/element-plus/2.1.9/theme-chalk/index.min.css"], }, { name: "@element-plus/icons-vue", var: "ElementPlusIconsVue", path: 'https://cdn.jsdelivr.net/npm/@element-plus/icons-vue@1.1.4/dist/index.iife.min.js', }, { name: "element-plus/lib/locale/lang/zh-cn", var: "ElementPlusLocaleZhCn", path: 'https://cdnjs.cloudflare.com/ajax/libs/element-plus/2.1.9/locale/zh-cn.min.js', }, { name: "vant", var: "vant", path: 'https://cdnjs.cloudflare.com/ajax/libs/vant/3.4.8/vant.js', css: ["https://cdnjs.cloudflare.com/ajax/libs/vant/3.4.8/index.min.css"], } ] }), ], build: { rollupOptions: { input: { index: path.resolve(__dirname, 'index.html'), mobile: path.resolve(__dirname, 'mobile.html'), }, output: { chunkFileNames: 'static/js/[name]-[hash].js', entryFileNames: "static/js/[name]-[hash].js", assetFileNames: "static/[ext]/name-[hash].[ext]" } }, } } })