@ubean/build 0.6.1 → 0.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +572 -0
- package/README.zh-CN.md +541 -0
- package/dist/actions-plugin.d.ts +2 -1
- package/dist/codegen/index.js +1 -2
- package/dist/production.js +1 -2
- package/dist/{vite-KFKQ41Jy.js → vite-D9LgxIQD.js} +28 -6
- package/dist/vite.d.ts +22 -13
- package/dist/vite.js +2 -2
- package/dist/{vue-Dh1dtOIU.js → vue-CAQVpHaN.js} +56 -20
- package/dist/vue.js +1 -2
- package/package.json +19 -19
package/dist/vite.d.ts
CHANGED
|
@@ -108,15 +108,19 @@ export declare function createUbeanDevEnvironmentFactory(runner: EnvRunnerLike):
|
|
|
108
108
|
//#endregion
|
|
109
109
|
//#region src/dev/dev-request-router.d.ts
|
|
110
110
|
/**
|
|
111
|
-
* DevTools 相关、**必须交给 Vite** 的命名空间前缀(
|
|
111
|
+
* DevTools 相关、**必须交给 Vite** 的命名空间前缀(devframe hub 外壳 + ubean DevTools SPA)。
|
|
112
112
|
*
|
|
113
113
|
* 它们全落在 `_` / `__` 保留命名空间里,判据默认会判给 ubean → 应用 404,因此调用方要把这份
|
|
114
|
-
* 前缀整体传给 `passThrough
|
|
115
|
-
* - `/
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
* - `/_devtools` →
|
|
119
|
-
* `/_devtools/__connection.json`。裸 `/_devtools` 由 `devtoolsRedirect`
|
|
114
|
+
* 前缀整体传给 `passThrough`。三个条目覆盖了 devframe hub 实际使用的名字:
|
|
115
|
+
* - `/__devframes` → hub base(默认 `/__devframes/`):外壳 HTML、`__connection.json`、
|
|
116
|
+
* `__ws`(WebSocket upgrade)、`__sse`、`__mcp`、`__client-imports.js`、每个 devframe 的
|
|
117
|
+
* 静态产物(`/__devframes/<id>/`)与远程 assets 代理;
|
|
118
|
+
* - `/_devtools` → ubean DevTools 的 devframe 挂载点(`basePath`):`index.html` 与
|
|
119
|
+
* `assets/*` 及 `/_devtools/__connection.json`。裸 `/_devtools` 由 `devtoolsRedirect`
|
|
120
|
+
* 抢先 302 到 hub 外壳,不受影响;
|
|
121
|
+
* - `/__devtools` → **历史条目**(旧 DTK 外壳),保留是为了兼容仍装了 `@vitejs/devtools` 的
|
|
122
|
+
* 用户项目 —— 那套外壳的 `/__devtools-assets/`、`/__devtools-client-imports.js` 仍在
|
|
123
|
+
* `__` 命名空间里。
|
|
120
124
|
*
|
|
121
125
|
* 2026-09-17 实测:`/__devtools-assets/vite-plus.svg`(应用页控制台报 404)与
|
|
122
126
|
* `/_devtools/index.html`(DevTools 面板空白的真凶)此前都落进了应用 404。
|
|
@@ -131,16 +135,21 @@ export declare function isFrameworkHtmlPage(url: string): boolean;
|
|
|
131
135
|
*/
|
|
132
136
|
export declare function isViteResourceRequest(url: string, headers?: IncomingMessage['headers']): boolean;
|
|
133
137
|
/**
|
|
134
|
-
*
|
|
138
|
+
* 收集 render-blocking CSS 链接。
|
|
135
139
|
*
|
|
136
|
-
* dev 下由 JS 引入的 CSS
|
|
137
|
-
*
|
|
138
|
-
*
|
|
140
|
+
* dev 下由 JS 引入的 CSS 要等模块图执行完才生效,SSR HTML 在这段间隙是**无样式**的(FOUC)。
|
|
141
|
+
* 把同一批 CSS 以阻塞 `<link>` 注入,浏览器可与 JS 并行抓取,首屏即有样式。
|
|
142
|
+
*
|
|
143
|
+
* 数据源是 **ssr + client 两个模块图**,缺一不可:
|
|
144
|
+
* - `client` 提供客户端入口 import 的全局样式(虚拟 uno.css、`@vean/ui/styles.css`);
|
|
145
|
+
* - `ssr` 提供 SFC `<style>` 块,且**首次页面请求时 client 图是空的**(它由浏览器后续请求
|
|
146
|
+
* 客户端入口才填充)—— 只读 client 图等于首个请求永远注入 0 个链接,正是 FOUC 的来源。
|
|
139
147
|
*
|
|
140
148
|
* `?direct` 让 Vite 的 transform 中间件返回原始 CSS(`Content-Type: text/css`)而不是注入式 JS
|
|
141
|
-
*
|
|
149
|
+
* 包装。它必须紧跟路径(`?direct&vue&…`):Vite 的 `CSS_LANGS_RE` 只认 `.css` 结尾或紧跟
|
|
150
|
+
* `?`,写成 `&lang.css&direct` 会落到 JS 分支,浏览器拒绝把 JS 当样式表。
|
|
142
151
|
*/
|
|
143
|
-
export declare function collectDevCssLinks(
|
|
152
|
+
export declare function collectDevCssLinks(server: ViteDevServer): string[];
|
|
144
153
|
/** 在 `</head>` 前插入阻塞样式链接。 */
|
|
145
154
|
export declare function injectStylesheetLinks(html: string, hrefs: string[]): string;
|
|
146
155
|
interface DevRequestRouterOptions {
|
package/dist/vite.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { m as createVirtualRegistry } from "./ssr-singleton-Bbds29jS.js";
|
|
2
|
-
import { A as toVueRouterPagePath, C as bootstrapDevApp, D as resolveLocaleVueParam, E as resolveDevSecurityHeaders, O as enhanceDevApp, S as peekDevScanCoordinator, T as createDevAppReady, _ as toWebRequest, b as getDevScanCoordinator, c as collectDevCssLinks, d as getDevApp, f as injectStylesheetLinks, g as sendWebResponse, h as ubeanDevRequestPlugin, k as buildDevSsrRoutes, l as createUbeanRequestHandlers, m as isViteResourceRequest, p as isFrameworkHtmlPage, s as DEVTOOLS_PASS_THROUGH_PREFIXES, u as ensureDevApp, v as DEV_SCAN_DIRS, w as createDevApp, x as onDevScan, y as createDevScanCoordinator } from "./vue-
|
|
3
|
-
import { D as createCloudflarePreviewRunner, E as MINIFLARE_INSTALL_HINT, O as defaultLoadMiniflare, _ as ubeanPreviewPlugin, a as createEnvRunnerTransport, c as getDevWorkerEntrySource, d as attachPreviewMiddleware, f as createPreviewMiddleware, g as sendPreviewStatus, h as sendPreviewFile, i as bridgeEnvRunnerInvokes, k as readCompatibilityDate, l as invalidateDevWorkerModules, m as resolvePreviewFile, n as UBEAN_DEV_ENV_NAME, o as createUbeanDevEnvironmentFactory, p as previewMimeType, r as UbeanDevEnvironment, s as DEV_WORKER_FILE, t as ubeanPlugin, u as writeDevWorkerEntry } from "./vite-
|
|
2
|
+
import { A as toVueRouterPagePath, C as bootstrapDevApp, D as resolveLocaleVueParam, E as resolveDevSecurityHeaders, O as enhanceDevApp, S as peekDevScanCoordinator, T as createDevAppReady, _ as toWebRequest, b as getDevScanCoordinator, c as collectDevCssLinks, d as getDevApp, f as injectStylesheetLinks, g as sendWebResponse, h as ubeanDevRequestPlugin, k as buildDevSsrRoutes, l as createUbeanRequestHandlers, m as isViteResourceRequest, p as isFrameworkHtmlPage, s as DEVTOOLS_PASS_THROUGH_PREFIXES, u as ensureDevApp, v as DEV_SCAN_DIRS, w as createDevApp, x as onDevScan, y as createDevScanCoordinator } from "./vue-CAQVpHaN.js";
|
|
3
|
+
import { D as createCloudflarePreviewRunner, E as MINIFLARE_INSTALL_HINT, O as defaultLoadMiniflare, _ as ubeanPreviewPlugin, a as createEnvRunnerTransport, c as getDevWorkerEntrySource, d as attachPreviewMiddleware, f as createPreviewMiddleware, g as sendPreviewStatus, h as sendPreviewFile, i as bridgeEnvRunnerInvokes, k as readCompatibilityDate, l as invalidateDevWorkerModules, m as resolvePreviewFile, n as UBEAN_DEV_ENV_NAME, o as createUbeanDevEnvironmentFactory, p as previewMimeType, r as UbeanDevEnvironment, s as DEV_WORKER_FILE, t as ubeanPlugin, u as writeDevWorkerEntry } from "./vite-D9LgxIQD.js";
|
|
4
4
|
export { DEVTOOLS_PASS_THROUGH_PREFIXES, DEV_SCAN_DIRS, DEV_WORKER_FILE, MINIFLARE_INSTALL_HINT, UBEAN_DEV_ENV_NAME, UbeanDevEnvironment, attachPreviewMiddleware, bootstrapDevApp, bridgeEnvRunnerInvokes, buildDevSsrRoutes, collectDevCssLinks, createCloudflarePreviewRunner, createDevApp, createDevAppReady, createDevScanCoordinator, createEnvRunnerTransport, createPreviewMiddleware, createUbeanDevEnvironmentFactory, createUbeanRequestHandlers, createVirtualRegistry, defaultLoadMiniflare, enhanceDevApp, ensureDevApp, getDevApp, getDevScanCoordinator, getDevWorkerEntrySource, injectStylesheetLinks, invalidateDevWorkerModules, isFrameworkHtmlPage, isViteResourceRequest, onDevScan, peekDevScanCoordinator, previewMimeType, readCompatibilityDate, resolveDevSecurityHeaders, resolveLocaleVueParam, resolvePreviewFile, sendPreviewFile, sendPreviewStatus, sendWebResponse, toVueRouterPagePath, toWebRequest, ubeanDevRequestPlugin, ubeanPlugin, ubeanPreviewPlugin, writeDevWorkerEntry };
|
|
@@ -694,20 +694,28 @@ const RESERVED_APP_PREFIXES = [
|
|
|
694
694
|
"/api/"
|
|
695
695
|
];
|
|
696
696
|
/**
|
|
697
|
-
* DevTools 相关、**必须交给 Vite** 的命名空间前缀(
|
|
697
|
+
* DevTools 相关、**必须交给 Vite** 的命名空间前缀(devframe hub 外壳 + ubean DevTools SPA)。
|
|
698
698
|
*
|
|
699
699
|
* 它们全落在 `_` / `__` 保留命名空间里,判据默认会判给 ubean → 应用 404,因此调用方要把这份
|
|
700
|
-
* 前缀整体传给 `passThrough
|
|
701
|
-
* - `/
|
|
702
|
-
*
|
|
703
|
-
*
|
|
704
|
-
* - `/_devtools` →
|
|
705
|
-
* `/_devtools/__connection.json`。裸 `/_devtools` 由 `devtoolsRedirect`
|
|
700
|
+
* 前缀整体传给 `passThrough`。三个条目覆盖了 devframe hub 实际使用的名字:
|
|
701
|
+
* - `/__devframes` → hub base(默认 `/__devframes/`):外壳 HTML、`__connection.json`、
|
|
702
|
+
* `__ws`(WebSocket upgrade)、`__sse`、`__mcp`、`__client-imports.js`、每个 devframe 的
|
|
703
|
+
* 静态产物(`/__devframes/<id>/`)与远程 assets 代理;
|
|
704
|
+
* - `/_devtools` → ubean DevTools 的 devframe 挂载点(`basePath`):`index.html` 与
|
|
705
|
+
* `assets/*` 及 `/_devtools/__connection.json`。裸 `/_devtools` 由 `devtoolsRedirect`
|
|
706
|
+
* 抢先 302 到 hub 外壳,不受影响;
|
|
707
|
+
* - `/__devtools` → **历史条目**(旧 DTK 外壳),保留是为了兼容仍装了 `@vitejs/devtools` 的
|
|
708
|
+
* 用户项目 —— 那套外壳的 `/__devtools-assets/`、`/__devtools-client-imports.js` 仍在
|
|
709
|
+
* `__` 命名空间里。
|
|
706
710
|
*
|
|
707
711
|
* 2026-09-17 实测:`/__devtools-assets/vite-plus.svg`(应用页控制台报 404)与
|
|
708
712
|
* `/_devtools/index.html`(DevTools 面板空白的真凶)此前都落进了应用 404。
|
|
709
713
|
*/
|
|
710
|
-
const DEVTOOLS_PASS_THROUGH_PREFIXES = [
|
|
714
|
+
const DEVTOOLS_PASS_THROUGH_PREFIXES = [
|
|
715
|
+
"/__devframes",
|
|
716
|
+
"/__devtools",
|
|
717
|
+
"/_devtools"
|
|
718
|
+
];
|
|
711
719
|
/**
|
|
712
720
|
* 框架内置的 **HTML 页面**(不是应用页面):`/_scalar`(Scalar API 文档)与 `/_devtools`
|
|
713
721
|
* (DevTools SPA)。
|
|
@@ -721,9 +729,19 @@ const DEVTOOLS_PASS_THROUGH_PREFIXES = ["/__devtools", "/_devtools"];
|
|
|
721
729
|
* `transformIndexHtml`(决定要不要注入客户端入口);单点维护,避免两边各写一份字符串判定。
|
|
722
730
|
*/
|
|
723
731
|
const FRAMEWORK_HTML_PAGES = ["/_devtools", "/_scalar"];
|
|
732
|
+
/**
|
|
733
|
+
* devframe hub 自身的 base(`DEVFRAMES_HUB_BASE`)以及 hub 下的全部子路径。
|
|
734
|
+
*
|
|
735
|
+
* hub 的外壳页与 devframe 的产物都不带应用的挂载点,且 `@devframes/hub-ui` 的嵌入式引导脚本
|
|
736
|
+
* 由 hub 自己注入(`transformIndexHtml` 会再注一份应用入口 → 同一个页面被启动两次,devframe
|
|
737
|
+
* 会在 console 报 `A client context is already published on this page`)。因此整个
|
|
738
|
+
* `/__devframes/` 命名空间都跳过 HTML transform。
|
|
739
|
+
*/
|
|
740
|
+
const HUB_BASE_PREFIX = "/__devframes/";
|
|
724
741
|
/** 该 URL 是否指向框架内置的 HTML 页面(见 {@link FRAMEWORK_HTML_PAGES})。 */
|
|
725
742
|
function isFrameworkHtmlPage(url) {
|
|
726
743
|
const pathname = url.split("?")[0].split("#")[0];
|
|
744
|
+
if (pathname === HUB_BASE_PREFIX.slice(0, -1) || pathname.startsWith(HUB_BASE_PREFIX)) return true;
|
|
727
745
|
return FRAMEWORK_HTML_PAGES.some((page) => pathname === page || pathname.startsWith(`${page}/`));
|
|
728
746
|
}
|
|
729
747
|
/** 「取模块而不是取页面」的查询标记:Vite 的 import-analysis 会在这些请求上加它们。 */
|
|
@@ -856,24 +874,42 @@ function toDevCssHref(url) {
|
|
|
856
874
|
return url.includes("\0") ? `${VALID_ID_PREFIX}${url.replace(/\0/g, NULL_BYTE_PLACEHOLDER)}` : url;
|
|
857
875
|
}
|
|
858
876
|
/**
|
|
859
|
-
*
|
|
877
|
+
* 收集 render-blocking CSS 链接。
|
|
860
878
|
*
|
|
861
|
-
* dev 下由 JS 引入的 CSS
|
|
862
|
-
*
|
|
863
|
-
*
|
|
879
|
+
* dev 下由 JS 引入的 CSS 要等模块图执行完才生效,SSR HTML 在这段间隙是**无样式**的(FOUC)。
|
|
880
|
+
* 把同一批 CSS 以阻塞 `<link>` 注入,浏览器可与 JS 并行抓取,首屏即有样式。
|
|
881
|
+
*
|
|
882
|
+
* 数据源是 **ssr + client 两个模块图**,缺一不可:
|
|
883
|
+
* - `client` 提供客户端入口 import 的全局样式(虚拟 uno.css、`@vean/ui/styles.css`);
|
|
884
|
+
* - `ssr` 提供 SFC `<style>` 块,且**首次页面请求时 client 图是空的**(它由浏览器后续请求
|
|
885
|
+
* 客户端入口才填充)—— 只读 client 图等于首个请求永远注入 0 个链接,正是 FOUC 的来源。
|
|
864
886
|
*
|
|
865
887
|
* `?direct` 让 Vite 的 transform 中间件返回原始 CSS(`Content-Type: text/css`)而不是注入式 JS
|
|
866
|
-
*
|
|
888
|
+
* 包装。它必须紧跟路径(`?direct&vue&…`):Vite 的 `CSS_LANGS_RE` 只认 `.css` 结尾或紧跟
|
|
889
|
+
* `?`,写成 `&lang.css&direct` 会落到 JS 分支,浏览器拒绝把 JS 当样式表。
|
|
867
890
|
*/
|
|
868
|
-
function collectDevCssLinks(
|
|
891
|
+
function collectDevCssLinks(server) {
|
|
869
892
|
const links = /* @__PURE__ */ new Set();
|
|
870
|
-
for (const
|
|
871
|
-
const
|
|
872
|
-
if (!
|
|
873
|
-
|
|
893
|
+
for (const name of ["ssr", "client"]) {
|
|
894
|
+
const moduleGraph = server.environments[name]?.moduleGraph;
|
|
895
|
+
if (!moduleGraph) continue;
|
|
896
|
+
for (const mod of moduleGraph.idToModuleMap.values()) {
|
|
897
|
+
const { url, id } = mod;
|
|
898
|
+
if (!url) continue;
|
|
899
|
+
if (!isCssModuleUrl(url) && !isCssModuleUrl(String(id ?? ""))) continue;
|
|
900
|
+
const [pathname, query = ""] = toDevCssHref(url).split(/(?=\?)/);
|
|
901
|
+
const search = (query.slice(1) ? query.slice(1).split("&") : []).filter((part) => part !== "direct" && !part.startsWith("direct="));
|
|
902
|
+
links.add(search.length ? `${pathname}?direct&${search.join("&")}` : `${pathname}?direct`);
|
|
903
|
+
}
|
|
874
904
|
}
|
|
875
905
|
return [...links];
|
|
876
906
|
}
|
|
907
|
+
/** CSS 模块判据:`.css` 结尾,或 SFC 的 `<style>` 块(`?vue&type=style&…`)。 */
|
|
908
|
+
function isCssModuleUrl(url) {
|
|
909
|
+
const [pathname, search = ""] = url.split(/(?=\?)/);
|
|
910
|
+
if (pathname.endsWith(".css")) return true;
|
|
911
|
+
return search.includes("type=style");
|
|
912
|
+
}
|
|
877
913
|
/** 在 `</head>` 前插入阻塞样式链接。 */
|
|
878
914
|
function injectStylesheetLinks(html, hrefs) {
|
|
879
915
|
if (!hrefs.length || !html.includes("</head>")) return html;
|
|
@@ -982,7 +1018,7 @@ function createUbeanRequestHandlers(server, options) {
|
|
|
982
1018
|
const isPage = !isFrameworkHtmlPage(url);
|
|
983
1019
|
if (contentType.includes("text/html") && webRes.body && !skipTransform && isPage) {
|
|
984
1020
|
const html = await webRes.text();
|
|
985
|
-
const cssLinks = collectDevCssLinks(server
|
|
1021
|
+
const cssLinks = collectDevCssLinks(server);
|
|
986
1022
|
const transformed = await server.transformIndexHtml(url, injectStylesheetLinks(html, cssLinks));
|
|
987
1023
|
res.statusCode = webRes.status;
|
|
988
1024
|
res.statusMessage = webRes.statusText;
|
|
@@ -1053,7 +1089,7 @@ function ubeanDevRequestPlugin(options) {
|
|
|
1053
1089
|
const pathname = (req.url || "/").split("?")[0].split("#")[0];
|
|
1054
1090
|
if (pathname === "/_devtools" || pathname === "/_devtools/") {
|
|
1055
1091
|
res.statusCode = 302;
|
|
1056
|
-
res.setHeader("Location", "/
|
|
1092
|
+
res.setHeader("Location", "/__devframes/");
|
|
1057
1093
|
res.end();
|
|
1058
1094
|
return;
|
|
1059
1095
|
}
|
package/dist/vue.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { VUE_PLUGIN_INCLUDE, createClientEntryVirtualModule, createServerEntryVirtualModule, createVueAppEntryVirtualModule, createVuePagesVirtualModule, ubeanVite as default, ubeanVite };
|
|
1
|
+
export { t as VUE_PLUGIN_INCLUDE, r as createClientEntryVirtualModule, i as createServerEntryVirtualModule, a as createVueAppEntryVirtualModule, o as createVuePagesVirtualModule, n as default, n as ubeanVite } from "./vue-CAQVpHaN.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ubean/build",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.3",
|
|
4
4
|
"description": "Vite plugins, production build, SSG prerender, type codegen, and Server Actions plugin for ubean",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist"
|
|
@@ -44,20 +44,20 @@
|
|
|
44
44
|
}
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@intlify/unplugin-vue-i18n": "11.2.
|
|
48
|
-
"@ubean/app": "0.6.
|
|
49
|
-
"@ubean/client": "0.6.
|
|
50
|
-
"@ubean/config": "0.6.
|
|
51
|
-
"@ubean/i18n": "0.6.
|
|
52
|
-
"@ubean/islands": "0.6.
|
|
53
|
-
"@ubean/markdown": "0.6.
|
|
54
|
-
"@ubean/pages": "0.6.
|
|
55
|
-
"@ubean/preset": "0.6.
|
|
56
|
-
"@ubean/routes": "0.6.
|
|
57
|
-
"@ubean/scan": "0.6.
|
|
58
|
-
"@ubean/server": "0.6.
|
|
59
|
-
"@ubean/shared": "0.6.
|
|
60
|
-
"@ubean/vue": "0.6.
|
|
47
|
+
"@intlify/unplugin-vue-i18n": "11.2.6",
|
|
48
|
+
"@ubean/app": "0.6.3",
|
|
49
|
+
"@ubean/client": "0.6.3",
|
|
50
|
+
"@ubean/config": "0.6.3",
|
|
51
|
+
"@ubean/i18n": "0.6.3",
|
|
52
|
+
"@ubean/islands": "0.6.3",
|
|
53
|
+
"@ubean/markdown": "0.6.3",
|
|
54
|
+
"@ubean/pages": "0.6.3",
|
|
55
|
+
"@ubean/preset": "0.6.3",
|
|
56
|
+
"@ubean/routes": "0.6.3",
|
|
57
|
+
"@ubean/scan": "0.6.3",
|
|
58
|
+
"@ubean/server": "0.6.3",
|
|
59
|
+
"@ubean/shared": "0.6.3",
|
|
60
|
+
"@ubean/vue": "0.6.3",
|
|
61
61
|
"@vitejs/plugin-vue": "^6.0.10",
|
|
62
62
|
"openapi-typescript": "^7.13.0",
|
|
63
63
|
"pathe": "^2.0.3",
|
|
@@ -70,14 +70,14 @@
|
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
72
|
"@types/node": "^26.6.5",
|
|
73
|
-
"@vue/compiler-sfc": "^3.5.
|
|
73
|
+
"@vue/compiler-sfc": "^3.5.44",
|
|
74
74
|
"hono": "4.13.13",
|
|
75
75
|
"typescript": "npm:typescript-native-bridge@latest",
|
|
76
|
-
"vite": "npm:@voidzero-dev/vite-plus-core@1.
|
|
77
|
-
"vite-plus": "1.
|
|
76
|
+
"vite": "npm:@voidzero-dev/vite-plus-core@1.3.0",
|
|
77
|
+
"vite-plus": "1.3.0"
|
|
78
78
|
},
|
|
79
79
|
"peerDependencies": {
|
|
80
|
-
"vite": "npm:@voidzero-dev/vite-plus-core@1.
|
|
80
|
+
"vite": "npm:@voidzero-dev/vite-plus-core@1.3.0"
|
|
81
81
|
},
|
|
82
82
|
"peerDependenciesMeta": {
|
|
83
83
|
"vite": {
|