86 lines
2.2 KiB
TypeScript
86 lines
2.2 KiB
TypeScript
import path from 'path';
|
|
|
|
import { defineConfig } from 'vite';
|
|
|
|
import vue from '@vitejs/plugin-vue';
|
|
import AutoImport from 'unplugin-auto-import/vite';
|
|
import Components from 'unplugin-vue-components/vite';
|
|
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';
|
|
import GlobalsPolyfills from '@esbuild-plugins/node-globals-polyfill';
|
|
import NodeModulesPolyfills from '@esbuild-plugins/node-modules-polyfill';
|
|
import { VitePWA } from 'vite-plugin-pwa';
|
|
import commonjs from 'vite-plugin-commonjs';
|
|
import replace from '@rollup/plugin-replace';
|
|
import { viteStaticCopy } from 'vite-plugin-static-copy';
|
|
|
|
export default defineConfig({
|
|
optimizeDeps: {
|
|
esbuildOptions: {
|
|
define: {
|
|
global: 'globalThis',
|
|
},
|
|
plugins: [
|
|
GlobalsPolyfills({
|
|
process: true,
|
|
buffer: true,
|
|
}),
|
|
],
|
|
},
|
|
},
|
|
resolve: {
|
|
extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue'],
|
|
alias: {
|
|
'@': path.resolve(__dirname, './src'),
|
|
|
|
process: 'rollup-plugin-node-polyfills/polyfills/process-es6',
|
|
stream: 'rollup-plugin-node-polyfills/polyfills/stream',
|
|
util: 'rollup-plugin-node-polyfills/polyfills/util',
|
|
},
|
|
},
|
|
plugins: [
|
|
commonjs(),
|
|
NodeModulesPolyfills(),
|
|
vue(),
|
|
AutoImport({
|
|
resolvers: [ElementPlusResolver()],
|
|
}),
|
|
Components({
|
|
resolvers: [ElementPlusResolver()],
|
|
}),
|
|
VitePWA({
|
|
registerType: 'autoUpdate',
|
|
manifest: {
|
|
name: '音乐解锁',
|
|
theme_color: '#4DBA87',
|
|
description: '在任何设备上解锁已购的加密音乐!',
|
|
icons: [
|
|
{
|
|
src: 'assets/img/icons/android-chrome-192x192.png',
|
|
sizes: '192x192',
|
|
type: 'image/png',
|
|
},
|
|
{
|
|
src: 'assets/img/icons/android-chrome-512x512.png',
|
|
sizes: '512x512',
|
|
type: 'image/png',
|
|
},
|
|
],
|
|
},
|
|
}),
|
|
replace({
|
|
preventAssignment: false,
|
|
values: {
|
|
'global.': 'window.',
|
|
},
|
|
}),
|
|
viteStaticCopy({
|
|
targets: [
|
|
{
|
|
src: 'img',
|
|
dest: 'assets',
|
|
},
|
|
],
|
|
}),
|
|
],
|
|
});
|