import path from 'path' import type { CompilerOptions } from '@vue/compiler-core' import { COMPONENT_CUSTOM_HIDDEN, MiniProgramCompilerOptions, transformComponentLink, transformMatchMedia, transformRef, } from '@dcloudio/uni-cli-shared' import { UniMiniProgramPluginOptions } from '@dcloudio/uni-mp-vite' import source from './project.config.json' const nodeTransforms = [ transformRef, transformMatchMedia, transformComponentLink, ] export const compilerOptions: CompilerOptions = { nodeTransforms, } export const miniProgram: MiniProgramCompilerOptions = { class: { array: true, }, slot: { fallbackContent: false, dynamicSlotNames: true, }, directive: 'qq:', component: { vShow: COMPONENT_CUSTOM_HIDDEN, }, } export const options: UniMiniProgramPluginOptions = { vite: { inject: { uni: [path.resolve(__dirname, 'uni.api.esm.js'), 'default'], }, alias: { 'uni-mp-runtime': path.resolve(__dirname, 'uni.mp.esm.js'), }, copyOptions: { assets: ['wxcomponents'], targets: [ { src: ['custom-tab-bar'], get dest() { return process.env.UNI_OUTPUT_DIR }, }, ], }, }, global: 'qq', app: { darkmode: false, subpackages: true, }, project: { filename: 'project.config.json', source, }, template: { /* eslint-disable no-restricted-syntax */ ...miniProgram, filter: { extname: '.qs', lang: 'wxs', generate(filter, filename) { if (filename) { return `` } return ` ${filter.code} ` }, }, extname: '.qml', compilerOptions, }, style: { extname: '.qss', }, }