index.ts 1.7 KB
Newer Older
fxy060608's avatar
fxy060608 已提交
1
import { Plugin } from 'vite'
fxy060608's avatar
fxy060608 已提交
2
import { resolveBuiltIn } from '@dcloudio/uni-cli-shared'
fxy060608's avatar
fxy060608 已提交
3 4 5
import initMiniProgramPlugin, {
  UniMiniProgramPluginOptions,
} from '@dcloudio/uni-mp-vite'
fxy060608's avatar
fxy060608 已提交
6

fxy060608's avatar
fxy060608 已提交
7 8
import source from './project.config.json'

fxy060608's avatar
fxy060608 已提交
9 10 11 12 13 14 15 16
const uniMiniProgramWeixinPlugin: Plugin = {
  name: 'vite:uni-mp-weixin',
  config() {
    return {
      define: {
        __VUE_CREATED_DEFERRED__: JSON.stringify('false'),
      },
    }
fxy060608's avatar
fxy060608 已提交
17
  },
fxy060608's avatar
fxy060608 已提交
18 19
}

fxy060608's avatar
fxy060608 已提交
20 21
const projectConfigFilename = 'project.config.json'

fxy060608's avatar
fxy060608 已提交
22 23
const options: UniMiniProgramPluginOptions = {
  vite: {
fxy060608's avatar
fxy060608 已提交
24 25 26 27 28 29
    inject: {
      uni: [
        resolveBuiltIn('@dcloudio/uni-mp-weixin/dist/uni.api.esm.js'),
        'default',
      ],
    },
fxy060608's avatar
fxy060608 已提交
30 31 32 33 34
    alias: {
      'uni-mp-runtime': resolveBuiltIn(
        '@dcloudio/uni-mp-weixin/dist/uni.mp.esm.js'
      ),
    },
fxy060608's avatar
fxy060608 已提交
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
    copyOptions: {
      assets: ['wxcomponents'],
      targets: [
        {
          src: [
            'theme.json',
            'sitemap.json',
            'ext.json',
            'custom-tab-bar',
            'functional-pages',
            projectConfigFilename,
          ],
          get dest() {
            return process.env.UNI_OUTPUT_DIR
          },
        },
      ],
    },
fxy060608's avatar
fxy060608 已提交
53 54 55 56 57 58 59
  },
  global: 'wx',
  app: {
    darkmode: true,
    subpackages: true,
  },
  project: {
fxy060608's avatar
fxy060608 已提交
60 61
    filename: projectConfigFilename,
    source,
fxy060608's avatar
fxy060608 已提交
62 63
  },
  template: {
fxy060608's avatar
fxy060608 已提交
64 65 66
    slot: {
      fallback: false,
    },
fxy060608's avatar
fxy060608 已提交
67
    extname: '.wxml',
fxy060608's avatar
fxy060608 已提交
68
    directive: 'wx:',
fxy060608's avatar
fxy060608 已提交
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
  },
  style: {
    extname: '.wxss',
    cssVars: {
      '--status-bar-height': '25px',
      '--window-top': '0px',
      '--window-bottom': '0px',
      '--window-left': '0px',
      '--window-right': '0px',
    },
  },
  filter: {
    extname: '.wxs',
    tag: 'wxs',
  },
}

export default [uniMiniProgramWeixinPlugin, ...initMiniProgramPlugin(options)]