import { Plugin } from 'vite' import { addComponentBindLink, resolveBuiltIn } from '@dcloudio/uni-cli-shared' import initMiniProgramPlugin, { UniMiniProgramPluginOptions, } from '@dcloudio/uni-mp-vite' import source from './project.config.json' import { fix2648 } from './fix2648' const uniMiniProgramQQPlugin: Plugin = { name: 'vite:uni-mp-qq', config() { return { define: { __VUE_CREATED_DEFERRED__: false, }, } }, writeBundle(_, bundle) { fix2648(bundle) }, } const options: UniMiniProgramPluginOptions = { vite: { inject: { uni: [ resolveBuiltIn('@dcloudio/uni-mp-qq/dist/uni.api.esm.js'), 'default', ], }, alias: { 'uni-mp-runtime': resolveBuiltIn( '@dcloudio/uni-mp-qq/dist/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: { filter: { extname: '.qs', lang: 'wxs', generate(filter, filename) { if (filename) { return `` } return ` ${filter.code} ` }, }, slot: { fallback: false, }, extname: '.qml', directive: 'qq:', compilerOptions: { nodeTransforms: [addComponentBindLink], }, }, style: { extname: '.qss', }, } export default [uniMiniProgramQQPlugin, ...initMiniProgramPlugin(options)]