From 8bdd7462848223cddb69bf2c65f1e3f7f767e97c Mon Sep 17 00:00:00 2001 From: pt Date: Mon, 23 Oct 2023 11:36:13 +0800 Subject: [PATCH] feat(mp): support for adding plugins to miniprogram components --- packages/uni-mp-vite/src/plugins/entry.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/uni-mp-vite/src/plugins/entry.ts b/packages/uni-mp-vite/src/plugins/entry.ts index 901d1433126..15dc6c9b9f2 100644 --- a/packages/uni-mp-vite/src/plugins/entry.ts +++ b/packages/uni-mp-vite/src/plugins/entry.ts @@ -1,3 +1,4 @@ +import fs from 'fs' import path from 'path' import { addMiniProgramComponentJson, @@ -6,6 +7,7 @@ import { removeExt, encodeBase64Url, decodeBase64Url, + parseJson, } from '@dcloudio/uni-cli-shared' import { Plugin } from 'vite' @@ -37,6 +39,15 @@ export function isUniComponentUrl(id: string) { return id.startsWith(uniComponentPrefix) } +export function parseComponentJson(filepath: string) { + const jsonPath = filepath.replace(/\.[^.]+$/, '.json') + if (fs.existsSync(jsonPath)) { + const json = parseJson(fs.readFileSync(jsonPath, 'utf8')) + + return json[process.env.UNI_PLATFORM] + } +} + export function uniEntryPlugin({ global, }: UniMiniProgramPluginOptions): Plugin { @@ -72,6 +83,7 @@ ${global}.createPage(MiniProgramPage)`, process.env.UNI_PLATFORM === 'mp-baidu' ? 'apply-shared' : undefined, + ...parseComponentJson(filepath), } ) return {