@ubean/build 0.6.7 → 0.6.8
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/dist/index.d.ts +6 -1
- package/dist/index.js +1 -1
- package/dist/production.js +1 -1
- package/dist/{virtual-modules-B3aE-Fmn.js → virtual-modules-C_Onkx4t.js} +2 -2
- package/dist/{vite--HujaLpA.js → vite-C8I25VzP.js} +41 -7
- package/dist/vite.js +2 -2
- package/dist/{vue-Z4wVSxSE.js → vue-QvsTw-R-.js} +26 -4
- package/dist/vue.js +1 -1
- package/package.json +15 -14
package/dist/index.d.ts
CHANGED
|
@@ -109,7 +109,12 @@ export declare function ssrSingletonProdOptimizeExclude(extra?: string[]): strin
|
|
|
109
109
|
export declare function createRoutingVirtualModule(routes: CompiledRoute[], middlewares: CompiledMiddleware[], cwd: string): VirtualModule;
|
|
110
110
|
export declare function createPagesVirtualModule(pages: CompiledPage[], layouts: CompiledLayout[], cwd: string): VirtualModule;
|
|
111
111
|
export declare function createMetaVirtualModule(): VirtualModule;
|
|
112
|
-
export declare function createAppVirtualModule(apiRoutes: ScannedApiRoute[], middlewares: ScannedMiddleware[], pages: ScannedPageRoute[], srcDir: string
|
|
112
|
+
export declare function createAppVirtualModule(apiRoutes: ScannedApiRoute[], middlewares: ScannedMiddleware[], pages: ScannedPageRoute[], srcDir: string,
|
|
113
|
+
/**
|
|
114
|
+
* 页面 glob 扩展名(逗号分隔,无点),来自 `pageGlobExtensions()`。
|
|
115
|
+
* 不传时用全开集合,仅兼容旧调用方式。
|
|
116
|
+
*/
|
|
117
|
+
pageExtensions?: string): VirtualModule;
|
|
113
118
|
export declare function createLocalesVirtualModule(_locales: ScannedLocale[], defaultLocale: string | undefined, srcDir?: string, i18nConfigJson?: string): VirtualModule;
|
|
114
119
|
//#endregion
|
|
115
120
|
export { type VirtualModule, type VirtualModuleContext, VirtualModuleRegistry, type VirtualModuleResolver, type VirtualModuleTransform, createVirtualRegistry, defineVirtualModule, defineVirtualModulePrefix, resetVirtualRegistry, useVirtualRegistry };
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { _ as defineVirtualModule, a as ssrSingletonProdOptimizeExclude, b as useVirtualRegistry, c as getComponentResolvers, d as registerComponentResolver, f as registerCssImport, g as createVirtualRegistry, h as VirtualModuleRegistry, i as ssrSingletonDevPolicy, l as getCssImports, m as resetModuleRegistry, n as SSR_SINGLETON_OPTIMIZE_EXCLUDE, o as ssrSingletonProdSsr, p as registerHeadScript, r as SSR_SINGLETON_PACKAGES, t as SSR_SINGLETON_DEDUPE, u as getHeadScripts, v as defineVirtualModulePrefix, y as resetVirtualRegistry } from "./ssr-singleton-CUHZLgiO.js";
|
|
2
|
-
import { a as createRoutingVirtualModule, i as createPagesVirtualModule, n as createLocalesVirtualModule, o as stripMacros, r as createMetaVirtualModule, s as transformMacros, t as createAppVirtualModule } from "./virtual-modules-
|
|
2
|
+
import { a as createRoutingVirtualModule, i as createPagesVirtualModule, n as createLocalesVirtualModule, o as stripMacros, r as createMetaVirtualModule, s as transformMacros, t as createAppVirtualModule } from "./virtual-modules-C_Onkx4t.js";
|
|
3
3
|
export { SSR_SINGLETON_DEDUPE, SSR_SINGLETON_OPTIMIZE_EXCLUDE, SSR_SINGLETON_PACKAGES, VirtualModuleRegistry, createAppVirtualModule, createLocalesVirtualModule, createMetaVirtualModule, createPagesVirtualModule, createRoutingVirtualModule, createVirtualRegistry, defineVirtualModule, defineVirtualModulePrefix, getComponentResolvers, getCssImports, getHeadScripts, registerComponentResolver, registerCssImport, registerHeadScript, resetModuleRegistry, resetVirtualRegistry, ssrSingletonDevPolicy, ssrSingletonProdOptimizeExclude, ssrSingletonProdSsr, stripMacros, transformMacros, useVirtualRegistry };
|
package/dist/production.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { T as buildWithEnvironments, v as createIslandsSsrStubPlugin, y as generateCloudflareWorkerEntry, b as generateNodeServerEntry, x as generateStandardHandlerEntry, S as generateVirtualModulesToDisk, C as getPresetBuildConfig, w as serializePagesForEntry } from "./vite
|
|
1
|
+
export { T as buildWithEnvironments, v as createIslandsSsrStubPlugin, y as generateCloudflareWorkerEntry, b as generateNodeServerEntry, x as generateStandardHandlerEntry, S as generateVirtualModulesToDisk, C as getPresetBuildConfig, w as serializePagesForEntry } from "./vite-C8I25VzP.js";
|
|
@@ -157,7 +157,7 @@ function createMetaVirtualModule() {
|
|
|
157
157
|
return `export const UBEAN_VERSION = "0.0.1";\nexport default { version: UBEAN_VERSION };`;
|
|
158
158
|
});
|
|
159
159
|
}
|
|
160
|
-
function createAppVirtualModule(apiRoutes, middlewares, pages, srcDir) {
|
|
160
|
+
function createAppVirtualModule(apiRoutes, middlewares, pages, srcDir, pageExtensions) {
|
|
161
161
|
return defineVirtualModule("ubean:app-config", () => {
|
|
162
162
|
const routesJson = apiRoutes.map((r) => JSON.stringify({
|
|
163
163
|
relativePath: r.relativePath,
|
|
@@ -184,7 +184,7 @@ function createAppVirtualModule(apiRoutes, middlewares, pages, srcDir) {
|
|
|
184
184
|
return `
|
|
185
185
|
const routeModules = import.meta.glob([${JSON.stringify(`${prefix}/routes/**/*.{ts,js,mjs}`)}], { eager: false });
|
|
186
186
|
const middlewareModules = import.meta.glob([${JSON.stringify(`${prefix}/middleware/**/*.{ts,js,mjs}`)}], { eager: false });
|
|
187
|
-
const pageModules = import.meta.glob([${JSON.stringify(`${prefix}/pages/**/*.{vue,ts,tsx,js,jsx}`)}], { eager: false });
|
|
187
|
+
const pageModules = import.meta.glob([${JSON.stringify(`${prefix}/pages/**/*.{${pageExtensions ?? "vue,ts,tsx,js,jsx"}}`)}], { eager: false });
|
|
188
188
|
|
|
189
189
|
const _srcPrefix = ${JSON.stringify(prefix)};
|
|
190
190
|
function normalizeKey(p) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as ssrSingletonProdOptimizeExclude, g as createVirtualRegistry, o as ssrSingletonProdSsr, x as __exportAll } from "./ssr-singleton-CUHZLgiO.js";
|
|
2
|
-
import { a as createRoutingVirtualModule, i as createPagesVirtualModule, n as createLocalesVirtualModule, r as createMetaVirtualModule, s as transformMacros, t as createAppVirtualModule } from "./virtual-modules-
|
|
2
|
+
import { a as createRoutingVirtualModule, i as createPagesVirtualModule, n as createLocalesVirtualModule, r as createMetaVirtualModule, s as transformMacros, t as createAppVirtualModule } from "./virtual-modules-C_Onkx4t.js";
|
|
3
3
|
import { a as generateOpenApiTypes, i as generateTypes } from "./codegen-CUlE95gB.js";
|
|
4
|
-
import { _ as sendWebResponse, a as createServerEntryVirtualModule, d as ensureDevApp, i as createClientEntryVirtualModule, n as ubeanVite, o as createVueAppEntryVirtualModule, r as composeHeadScripts, s as createVuePagesVirtualModule, v as toWebRequest, x as getDevScanCoordinator } from "./vue-
|
|
4
|
+
import { _ as sendWebResponse, a as createServerEntryVirtualModule, d as ensureDevApp, i as createClientEntryVirtualModule, n as ubeanVite, o as createVueAppEntryVirtualModule, r as composeHeadScripts, s as createVuePagesVirtualModule, v as toWebRequest, x as getDevScanCoordinator } from "./vue-QvsTw-R-.js";
|
|
5
5
|
import { createStaticSsgRenderer } from "./static-render.js";
|
|
6
6
|
import { prerender, resolvePrerenderStaticDir } from "./prerender.js";
|
|
7
7
|
import { dirname, isAbsolute, join, relative, resolve } from "pathe";
|
|
@@ -35,6 +35,35 @@ function localeVueParamFromI18n(config) {
|
|
|
35
35
|
}) || void 0;
|
|
36
36
|
}
|
|
37
37
|
//#endregion
|
|
38
|
+
//#region src/page-glob.ts
|
|
39
|
+
/**
|
|
40
|
+
* 页面 glob 的扩展名集合。
|
|
41
|
+
*
|
|
42
|
+
* `import.meta.glob` 的范围必须与扫描器一致,否则会出现「扫描说不含 tsx、产物却
|
|
43
|
+
* 仍然把 `src/pages/*.tsx` 拉进构建」→ 构建期 `[PARSE_ERROR] Unexpected JSX expression`
|
|
44
|
+
* (关掉 JSX 时依然报错的真实原因)。
|
|
45
|
+
*
|
|
46
|
+
* 两类后缀与 `pages.extensions` 无关、始终参与:
|
|
47
|
+
* - `ts` / `js` —— `.reuse.ts` / `.meta.ts`(及其 `.js` 版本)是纯元数据文件
|
|
48
|
+
* (只含 `definePage`),扫描器用独立 pattern `**\/*.reuse.{ts,js}` /
|
|
49
|
+
* `**\/*.meta.{ts,js}` 收起,**不受 `extensions` 影响**。glob 缺了 ts/js,
|
|
50
|
+
* 元数据页能扫到却加载不到 → 路由表与实际可加载模块脱节。
|
|
51
|
+
* 顺带覆盖用户把 `ts` 显式写进 `extensions` 的情形。
|
|
52
|
+
* - `md` / `mdx` —— markdown 页面,由 `markdown` 开关决定加不加
|
|
53
|
+
*/
|
|
54
|
+
function pageGlobExtensions(extensions, markdownExts = []) {
|
|
55
|
+
const base = extensions && extensions.length > 0 ? extensions : [
|
|
56
|
+
"vue",
|
|
57
|
+
"tsx",
|
|
58
|
+
"jsx"
|
|
59
|
+
];
|
|
60
|
+
const all = new Set(base);
|
|
61
|
+
all.add("ts");
|
|
62
|
+
all.add("js");
|
|
63
|
+
for (const ext of markdownExts) all.add(ext);
|
|
64
|
+
return [...all].join(",");
|
|
65
|
+
}
|
|
66
|
+
//#endregion
|
|
38
67
|
//#region src/ssg-entry.ts
|
|
39
68
|
/**
|
|
40
69
|
* 生成 renderer setup 代码块(`_rendererRoutes` + `_pageRenderer`)。
|
|
@@ -1453,6 +1482,8 @@ async function generateVirtualModulesToDisk(cwd, config, scanResult, virtualDir,
|
|
|
1453
1482
|
const srcDirAbs = resolve(cwd, config.srcDir);
|
|
1454
1483
|
const viteSrcDir = toVitePath(relative(cwd, srcDirAbs));
|
|
1455
1484
|
const viteSrcPrefix = viteSrcDir ? `/${viteSrcDir}` : "";
|
|
1485
|
+
const mdPageExts = config.markdown?.enabled === false ? [] : config.markdown?.mdx === true ? ["md", "mdx"] : ["md"];
|
|
1486
|
+
const pagesExts = pageGlobExtensions(config.pages?.extensions, mdPageExts);
|
|
1456
1487
|
registry.register(createRoutingVirtualModule(scanResult.apiRoutes.map((r) => ({
|
|
1457
1488
|
method: r.method?.toUpperCase() || "ALL",
|
|
1458
1489
|
path: r.route,
|
|
@@ -1481,7 +1512,7 @@ async function generateVirtualModulesToDisk(cwd, config, scanResult, virtualDir,
|
|
|
1481
1512
|
registry.register(createVueAppEntryVirtualModule(scanResult.appEntry));
|
|
1482
1513
|
registry.register(createClientEntryVirtualModule());
|
|
1483
1514
|
}
|
|
1484
|
-
registry.register(createAppVirtualModule(scanResult.apiRoutes, scanResult.middlewares, hasPages ? scanResult.pages : [], viteSrcPrefix || "/"));
|
|
1515
|
+
registry.register(createAppVirtualModule(scanResult.apiRoutes, scanResult.middlewares, hasPages ? scanResult.pages : [], viteSrcPrefix || "/", pagesExts));
|
|
1485
1516
|
registry.register(createLocalesVirtualModule(scanResult.locales, scanResult.defaultLocale, viteSrcPrefix || "/", serializeI18nConfig(config.i18n)));
|
|
1486
1517
|
if (hasServer) registry.register(createServerEntryVirtualModule(scanResult.serverEntry));
|
|
1487
1518
|
async function writeModule(id, filename, header = "// Auto-generated by ubean\n") {
|
|
@@ -1501,7 +1532,7 @@ async function generateVirtualModulesToDisk(cwd, config, scanResult, virtualDir,
|
|
|
1501
1532
|
}
|
|
1502
1533
|
if (hasServer) await writeModule("virtual:ubean-server", "server-entry.ts", "");
|
|
1503
1534
|
await writeFile(join(virtualDir, "islands-registry.ts"), "export const islands = {};\n", "utf-8");
|
|
1504
|
-
const pagesGlob = JSON.stringify(`${viteSrcPrefix}/pages/**/*.{
|
|
1535
|
+
const pagesGlob = JSON.stringify(`${viteSrcPrefix}/pages/**/*.{${pagesExts}}`);
|
|
1505
1536
|
const routesGlob = JSON.stringify(`${viteSrcPrefix}/routes/**/*.{ts,js,mjs}`);
|
|
1506
1537
|
const middlewareGlob = JSON.stringify(`${viteSrcPrefix}/middleware/**/*.{ts,js,mjs}`);
|
|
1507
1538
|
const layoutsGlob = JSON.stringify(`${viteSrcPrefix}/layouts/**/*.{vue,ts}`);
|
|
@@ -2598,7 +2629,8 @@ function ubeanPlugin(options) {
|
|
|
2598
2629
|
cwd: ubeanConfig.rootDir,
|
|
2599
2630
|
srcDir: ubeanConfig.srcDir,
|
|
2600
2631
|
dirs: ubeanConfig.dir,
|
|
2601
|
-
ignore: ubeanConfig.scanOptions?.ignore
|
|
2632
|
+
ignore: ubeanConfig.scanOptions?.ignore,
|
|
2633
|
+
pageExtensions: ubeanConfig.pages?.extensions
|
|
2602
2634
|
});
|
|
2603
2635
|
const { snapshot: contentSnapshot } = await loadContentForBuild(ubeanConfig.rootDir, ubeanConfig.content);
|
|
2604
2636
|
await runEnvBuilds(builder, await prepareBuild(createBuildContext({
|
|
@@ -2682,6 +2714,7 @@ function ubeanPlugin(options) {
|
|
|
2682
2714
|
srcDir: ubeanConfig.srcDir,
|
|
2683
2715
|
dirs: ubeanConfig.dir,
|
|
2684
2716
|
ignore: ubeanConfig.scanOptions?.ignore,
|
|
2717
|
+
pageExtensions: ubeanConfig.pages?.extensions,
|
|
2685
2718
|
source,
|
|
2686
2719
|
scan: () => scanProjectOnce(),
|
|
2687
2720
|
reload: () => server.ws.send({ type: "full-reload" }),
|
|
@@ -2762,7 +2795,8 @@ function ubeanPlugin(options) {
|
|
|
2762
2795
|
cwd: ubeanConfig.rootDir,
|
|
2763
2796
|
srcDir: ubeanConfig.srcDir,
|
|
2764
2797
|
dirs: ubeanConfig.dir,
|
|
2765
|
-
ignore: ubeanConfig.scanOptions?.ignore
|
|
2798
|
+
ignore: ubeanConfig.scanOptions?.ignore,
|
|
2799
|
+
pageExtensions: ubeanConfig.pages?.extensions
|
|
2766
2800
|
});
|
|
2767
2801
|
}
|
|
2768
2802
|
async function scanAndRegister() {
|
|
@@ -2840,7 +2874,7 @@ function ubeanPlugin(options) {
|
|
|
2840
2874
|
isDefault: l.isDefault
|
|
2841
2875
|
})), ubeanConfig.rootDir));
|
|
2842
2876
|
virtualRegistry.register(createMetaVirtualModule());
|
|
2843
|
-
virtualRegistry.register(createAppVirtualModule(result.apiRoutes, result.middlewares, result.pages, viteSrcPrefix || "/"));
|
|
2877
|
+
virtualRegistry.register(createAppVirtualModule(result.apiRoutes, result.middlewares, result.pages, viteSrcPrefix || "/", pageGlobExtensions(ubeanConfig.pages?.extensions, ubeanConfig.markdown?.enabled === false ? [] : ubeanConfig.markdown?.mdx === true ? ["md", "mdx"] : ["md"])));
|
|
2844
2878
|
virtualRegistry.register(createLocalesVirtualModule(result.locales, result.defaultLocale, viteSrcPrefix || "/", serializeI18nConfig(ubeanConfig.i18n)));
|
|
2845
2879
|
await maybeGenerateRouteFiles(ubeanConfig, result).catch((err) => {
|
|
2846
2880
|
console.warn("[ubean:core] Route file generation failed:", err?.message || err);
|
package/dist/vite.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { g as createVirtualRegistry } from "./ssr-singleton-CUHZLgiO.js";
|
|
2
|
-
import { A as buildDevSsrRoutes, C as peekDevScanCoordinator, D as resolveDevSecurityHeaders, E as createDevAppReady, O as resolveLocaleVueParam, S as onDevScan, T as createDevApp, _ as sendWebResponse, b as createDevScanCoordinator, c as DEVTOOLS_PASS_THROUGH_PREFIXES, d as ensureDevApp, f as getDevApp, g as ubeanDevRequestPlugin, h as isViteResourceRequest, j as toVueRouterPagePath, k as enhanceDevApp, l as collectDevCssLinks, m as isFrameworkHtmlPage, p as injectStylesheetLinks, u as createUbeanRequestHandlers, v as toWebRequest, w as bootstrapDevApp, x as getDevScanCoordinator, y as DEV_SCAN_DIRS } 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 buildDevSsrRoutes, C as peekDevScanCoordinator, D as resolveDevSecurityHeaders, E as createDevAppReady, O as resolveLocaleVueParam, S as onDevScan, T as createDevApp, _ as sendWebResponse, b as createDevScanCoordinator, c as DEVTOOLS_PASS_THROUGH_PREFIXES, d as ensureDevApp, f as getDevApp, g as ubeanDevRequestPlugin, h as isViteResourceRequest, j as toVueRouterPagePath, k as enhanceDevApp, l as collectDevCssLinks, m as isFrameworkHtmlPage, p as injectStylesheetLinks, u as createUbeanRequestHandlers, v as toWebRequest, w as bootstrapDevApp, x as getDevScanCoordinator, y as DEV_SCAN_DIRS } from "./vue-QvsTw-R-.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-C8I25VzP.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 };
|
|
@@ -4,7 +4,7 @@ import { createRequire } from "node:module";
|
|
|
4
4
|
import { generatePagesModuleSource } from "@ubean/vue/vite";
|
|
5
5
|
import { isAbsolute, join, normalize, relative, resolve } from "pathe";
|
|
6
6
|
import { existsSync } from "node:fs";
|
|
7
|
-
import { loadUbeanConfig, localePathsOf } from "@ubean/config";
|
|
7
|
+
import { loadUbeanConfig, localePathsOf, resolvePageCompilers } from "@ubean/config";
|
|
8
8
|
import { scanProject } from "@ubean/scan";
|
|
9
9
|
import { applyServerConfig, createUbeanApp } from "@ubean/app";
|
|
10
10
|
import { getVueLocaleParam, toVueRouterLocalePath } from "@ubean/i18n";
|
|
@@ -241,7 +241,8 @@ async function createDevApp(options) {
|
|
|
241
241
|
cwd: rootDir,
|
|
242
242
|
srcDir: config.srcDir,
|
|
243
243
|
dirs: config.dir,
|
|
244
|
-
ignore: config.scanOptions?.ignore
|
|
244
|
+
ignore: config.scanOptions?.ignore,
|
|
245
|
+
pageExtensions: config.pages?.extensions
|
|
245
246
|
});
|
|
246
247
|
const app = createUbeanApp({
|
|
247
248
|
rootDir,
|
|
@@ -1547,6 +1548,23 @@ export function resolveServerConfig(mode) {
|
|
|
1547
1548
|
//#endregion
|
|
1548
1549
|
//#region src/vue-plugin.ts
|
|
1549
1550
|
const VUE_PLUGIN_INCLUDE = [/\.vue$/, /\.md$/];
|
|
1551
|
+
/**
|
|
1552
|
+
* 懒加载 `@vitejs/plugin-vue-jsx`。
|
|
1553
|
+
*
|
|
1554
|
+
* 用 `createRequire` 而不是静态 import:只有真的写了 JSX 页面时才付 babel 链路的加载
|
|
1555
|
+
* 成本(`@babel/core` + `@babel/plugin-transform-typescript` + `@vue/babel-plugin-jsx`)。
|
|
1556
|
+
* 同时用 ESM interop 兼容默认导出与具名导出两种形状(不同版本各写过一种)。
|
|
1557
|
+
*/
|
|
1558
|
+
function createVueJsxPlugin() {
|
|
1559
|
+
const require = createRequire(import.meta.url);
|
|
1560
|
+
let mod;
|
|
1561
|
+
try {
|
|
1562
|
+
mod = require("@vitejs/plugin-vue-jsx");
|
|
1563
|
+
} catch {
|
|
1564
|
+
throw new Error("[ubean] `pages.extensions` 含 `tsx`/`jsx`,需要 `@vitejs/plugin-vue-jsx`,但未解析到该包。\n pnpm add -D @vitejs/plugin-vue-jsx\n 或从 `ubean.config.ts` 去掉 JSX 扩展名(`pages: { extensions: ['vue'] }`)。");
|
|
1565
|
+
}
|
|
1566
|
+
return (mod?.default?.default ?? mod?.default ?? mod)();
|
|
1567
|
+
}
|
|
1550
1568
|
const VIRTUAL_PAGES = "virtual:ubean-pages";
|
|
1551
1569
|
const VIRTUAL_APP = "virtual:ubean-app";
|
|
1552
1570
|
const VIRTUAL_CLIENT = "virtual:ubean-client-entry";
|
|
@@ -1620,7 +1638,8 @@ function ubeanVite(options) {
|
|
|
1620
1638
|
cwd: ubeanConfig.rootDir,
|
|
1621
1639
|
srcDir: ubeanConfig.srcDir,
|
|
1622
1640
|
dirs: ubeanConfig.dir,
|
|
1623
|
-
ignore: ubeanConfig.scanOptions?.ignore
|
|
1641
|
+
ignore: ubeanConfig.scanOptions?.ignore,
|
|
1642
|
+
pageExtensions: ubeanConfig.pages?.extensions
|
|
1624
1643
|
});
|
|
1625
1644
|
}
|
|
1626
1645
|
async function scanAndRegister() {
|
|
@@ -1737,6 +1756,7 @@ function ubeanVite(options) {
|
|
|
1737
1756
|
srcDir: ubeanConfig.srcDir,
|
|
1738
1757
|
dirs: ubeanConfig.dir,
|
|
1739
1758
|
ignore: ubeanConfig.scanOptions?.ignore,
|
|
1759
|
+
pageExtensions: ubeanConfig.pages?.extensions,
|
|
1740
1760
|
source,
|
|
1741
1761
|
scan: scanProjectOnce,
|
|
1742
1762
|
reload: () => server.ws.send({ type: "full-reload" }),
|
|
@@ -1756,10 +1776,12 @@ function ubeanVite(options) {
|
|
|
1756
1776
|
});
|
|
1757
1777
|
}
|
|
1758
1778
|
}];
|
|
1759
|
-
|
|
1779
|
+
const pageCompilers = resolvePageCompilers(ubeanConfig.pages?.extensions ?? []);
|
|
1780
|
+
if (options.vue !== false && pageCompilers.vue) plugins.unshift(vue({
|
|
1760
1781
|
include: VUE_PLUGIN_INCLUDE,
|
|
1761
1782
|
template: { compilerOptions: { isCustomElement: (tag) => tag.startsWith("ubean-") } }
|
|
1762
1783
|
}));
|
|
1784
|
+
if (pageCompilers.jsx) plugins.push(createVueJsxPlugin());
|
|
1763
1785
|
if (ubeanConfig.i18n?.enabled !== false) plugins.push(VueI18nPlugin({
|
|
1764
1786
|
include: [join(srcDir, "locales/**")],
|
|
1765
1787
|
ssr: true,
|
package/dist/vue.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as VUE_PLUGIN_INCLUDE, r as composeHeadScripts, i as createClientEntryVirtualModule, a as createServerEntryVirtualModule, o as createVueAppEntryVirtualModule, s as createVuePagesVirtualModule, n as default, n as ubeanVite } from "./vue-
|
|
1
|
+
export { t as VUE_PLUGIN_INCLUDE, r as composeHeadScripts, i as createClientEntryVirtualModule, a as createServerEntryVirtualModule, o as createVueAppEntryVirtualModule, s as createVuePagesVirtualModule, n as default, n as ubeanVite } from "./vue-QvsTw-R-.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ubean/build",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.8",
|
|
4
4
|
"description": "Vite plugins, production build, SSG prerender, type codegen, and Server Actions plugin for ubean",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist"
|
|
@@ -49,20 +49,21 @@
|
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"@intlify/unplugin-vue-i18n": "11.2.7",
|
|
52
|
-
"@ubean/app": "0.6.
|
|
53
|
-
"@ubean/client": "0.6.
|
|
54
|
-
"@ubean/config": "0.6.
|
|
55
|
-
"@ubean/i18n": "0.6.
|
|
56
|
-
"@ubean/islands": "0.6.
|
|
57
|
-
"@ubean/markdown": "0.6.
|
|
58
|
-
"@ubean/pages": "0.6.
|
|
59
|
-
"@ubean/preset": "0.6.
|
|
60
|
-
"@ubean/routes": "0.6.
|
|
61
|
-
"@ubean/scan": "0.6.
|
|
62
|
-
"@ubean/server": "0.6.
|
|
63
|
-
"@ubean/shared": "0.6.
|
|
64
|
-
"@ubean/vue": "0.6.
|
|
52
|
+
"@ubean/app": "0.6.8",
|
|
53
|
+
"@ubean/client": "0.6.8",
|
|
54
|
+
"@ubean/config": "0.6.8",
|
|
55
|
+
"@ubean/i18n": "0.6.8",
|
|
56
|
+
"@ubean/islands": "0.6.8",
|
|
57
|
+
"@ubean/markdown": "0.6.8",
|
|
58
|
+
"@ubean/pages": "0.6.8",
|
|
59
|
+
"@ubean/preset": "0.6.8",
|
|
60
|
+
"@ubean/routes": "0.6.8",
|
|
61
|
+
"@ubean/scan": "0.6.8",
|
|
62
|
+
"@ubean/server": "0.6.8",
|
|
63
|
+
"@ubean/shared": "0.6.8",
|
|
64
|
+
"@ubean/vue": "0.6.8",
|
|
65
65
|
"@vitejs/plugin-vue": "^6.0.10",
|
|
66
|
+
"@vitejs/plugin-vue-jsx": "^5.1.6",
|
|
66
67
|
"openapi-typescript": "^7.13.0",
|
|
67
68
|
"pathe": "^2.0.3",
|
|
68
69
|
"tinyglobby": "^0.2.17",
|