From 5d3cb96ac364413aa9eb494bc91744bd8f4a2c79 Mon Sep 17 00:00:00 2001 From: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> Date: Fri, 22 Mar 2024 11:17:53 +0530 Subject: [PATCH] fix(build): ship built-in vue-demi to avoid resolution issues (#3680) --- lib/vue-demi.mjs | 34 ++++++++++++++++++++++++++++++++++ package.json | 6 +++++- src/node/alias.ts | 4 ++++ 3 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 lib/vue-demi.mjs diff --git a/lib/vue-demi.mjs b/lib/vue-demi.mjs new file mode 100644 index 00000000..fd8ead4f --- /dev/null +++ b/lib/vue-demi.mjs @@ -0,0 +1,34 @@ +/** + * vue-demi v0.14.7 + * Copyright (c) 2020-present, Anthony Fu + * @license MIT + */ + +import * as Vue from 'vue' + +var isVue2 = false +var isVue3 = true +var Vue2 = undefined + +function install() {} + +export function set(target, key, val) { + if (Array.isArray(target)) { + target.length = Math.max(target.length, key) + target.splice(key, 1, val) + return val + } + target[key] = val + return val +} + +export function del(target, key) { + if (Array.isArray(target)) { + target.splice(key, 1) + return + } + delete target[key] +} + +export * from 'vue' +export { Vue, Vue2, isVue2, isVue3, install } diff --git a/package.json b/package.json index 0cba07de..47c01c7f 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,9 @@ "./theme-without-fonts": { "types": "./theme-without-fonts.d.ts", "default": "./dist/client/theme-default/without-fonts.js" + }, + "./vue-demi": { + "default": "./lib/vue-demi.mjs" } }, "bin": { @@ -36,7 +39,8 @@ "template", "client.d.ts", "theme.d.ts", - "theme-without-fonts.d.ts" + "theme-without-fonts.d.ts", + "lib" ], "repository": { "type": "git", diff --git a/src/node/alias.ts b/src/node/alias.ts index aeefcbe1..66320adc 100644 --- a/src/node/alias.ts +++ b/src/node/alias.ts @@ -41,6 +41,10 @@ export function resolveAliases( { find: /^vitepress\/theme$/, replacement: join(DIST_CLIENT_PATH, '/theme-default/index.js') + }, + { + find: /^vue-demi$/, + replacement: require.resolve('vitepress/vue-demi') } ]