import { defineConfig } from 'vite' import path from 'path'; import fs from 'fs-extra'; import uni from '@dcloudio/vite-plugin-uni' import UniPages from '@uni-helper/vite-plugin-uni-pages' import UnoCSS from 'unocss/vite' import zipPack from "vite-plugin-zip-pack" import dayjs from "dayjs"; // https://vitejs.dev/config/ import getPages from './build' const {exclude,staticModule} = getPages(); const timeStringNow = dayjs().format("YYYY-MM-DD HH-mm-ss") console.log('staticModule',staticModule); function copyFile() { return { enforce: 'post', async writeBundle() { await fs.copy( path.resolve(__dirname,`src/static/ycnc`), path.join( __dirname, 'dist', process.env.NODE_ENV === 'production' ? 'build' : 'dev', process.env.UNI_PLATFORM, 'static/ycnc' ) ); }, }; } export default defineConfig(({ command, mode }) => { const { UNI_PLATFORM } = process.env // 得到 mp-weixin, h5, app 等 return { plugins: [ UniPages({ exclude: ['**/components/**/**.*',...exclude], routeBlockLang: 'json5', // 虽然设了默认值,但是vue文件还是要加上 lang="json5", 这样才能很好地格式化 // homePage 通过 vue 文件的 route-block 的type="home"来设定 // pages 目录为 src/pages,分包目录不能配置在pages目录下 // subPackages: ['src/pages-sub'], // 是个数组,可以配置多个,但是不能为pages里面的目录 }), uni(), UnoCSS(), // copyFile(), // zipPack({ // inDir: `dist/build/${UNI_PLATFORM}`, // 输入的文件夹,就是要打包的文件夹 // outDir: `dist/build`, // 打包好的 zip 文件放到哪个文件夹下 // outFileName: `${UNI_PLATFORM}-${timeStringNow}.zip`, //文件名不能包含\/:*?"<>| // pathPrefix: '' // }), ] } })