import { defineConfig } from 'vite'; import uni from "@dcloudio/vite-plugin-uni"; import AutoImport from 'unplugin-auto-import/vite'; import Components from 'unplugin-vue-components/vite'; export default defineConfig({ build: { minify: 'terser', // assetsInlineLimit: 0, // 禁止将图片转成 import terserOptions: { compress: { drop_console: true, }, }, }, plugins: [ uni(), { name: 'transform-assets', enforce: 'pre', // 在 Vue 插件之前执行 transform(code, id) { if (/\.(vue|js|ts|css|scss|json)$/.test(id)) { let count = 0 const replacedCode = code.replace( /@@:([^\s"'()<>]+?\.(png|jpe?g|gif|svg|webp))/g, (match, path) => { count++ return `https://admin-1308826010.cos.ap-shanghai.myqcloud.com/${path}` } ); if (count > 0) { console.log(id, `本次替换了 ${count} 个图片地址`) } // console.log(id) return { code: replacedCode, map: null } } }, }, // 自动导入 Vue 相关 API(如 ref, reactive) AutoImport({ imports: ['vue', { '@dcloudio/uni-app': [ 'onLoad', // 页面加载时触发 'onShow', // 页面显示时触发 'onHide', // 页面隐藏时触发 'onUnload', // 页面卸载时触发 ], }, { '@/common/utils': [ 'showToast', // 明确列出方法名(推荐) 'sleep', ], } , { '@/common/com': [ ['com'], // 从 '@/common/index' 导入 yds 对象 ], } ], }), // 自动导入组件 Components({ dirs: [ 'components/**/*', ], // 指定组件目录 extensions: ['vue'], dts: true, // 生成类型声明文件(可选) // resolvers: [ // (name) => { // if (name === 'uni-popup') { // 匹配 kebab-case 名称 // return { // importName: 'uni-popup', // 组件文件实际导出的名称 // path: '@/components/uni-popup/components/uni-popup/uni-popup.vue', // 文件路径 // kebabCase: true // } // } // } // ] }), ] });