@ubean/build 0.6.4 → 0.6.5
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/production.d.ts
CHANGED
|
@@ -21,7 +21,12 @@ export interface BuildOptions {
|
|
|
21
21
|
config: ResolvedConfig;
|
|
22
22
|
preset: Preset;
|
|
23
23
|
scanResult: ScanResult;
|
|
24
|
+
/**
|
|
25
|
+
* 缺省时回落到 `config.build.minify`,再回落到 `true`。
|
|
26
|
+
* CLI `--minify` 优先级最高,由 `packages/cli/src/build.ts` 传入。
|
|
27
|
+
*/
|
|
24
28
|
minify?: boolean;
|
|
29
|
+
/** 缺省时回落到 `config.build.sourcemap`,再回落到 `false`。 */
|
|
25
30
|
sourcemap?: boolean;
|
|
26
31
|
/** Inlined content collections for production SSR (`queryCollection`). */
|
|
27
32
|
contentSnapshot?: Record<string, unknown[]>;
|
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-CmtXmVIm.js";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { a as ssrSingletonProdOptimizeExclude, m as createVirtualRegistry, o as ssrSingletonProdSsr, y as __exportAll } from "./ssr-singleton-Bbds29jS.js";
|
|
2
2
|
import { a as createRoutingVirtualModule, i as createPagesVirtualModule, n as createLocalesVirtualModule, r as createMetaVirtualModule, s as transformMacros, t as createAppVirtualModule } from "./virtual-modules-BK0L1Op-.js";
|
|
3
3
|
import { a as generateOpenApiTypes, i as generateTypes } from "./codegen-BL0s5Pyq.js";
|
|
4
|
-
import { _ as toWebRequest, a as createVueAppEntryVirtualModule, b as getDevScanCoordinator, g as sendWebResponse, i as createServerEntryVirtualModule, n as ubeanVite, o as createVuePagesVirtualModule, r as createClientEntryVirtualModule, u as ensureDevApp } from "./vue-
|
|
4
|
+
import { _ as toWebRequest, a as createVueAppEntryVirtualModule, b as getDevScanCoordinator, g as sendWebResponse, i as createServerEntryVirtualModule, n as ubeanVite, o as createVuePagesVirtualModule, r as createClientEntryVirtualModule, u as ensureDevApp } from "./vue-15_4jzH7.js";
|
|
5
5
|
import { createStaticSsgRenderer } from "./static-render.js";
|
|
6
6
|
import { prerender, resolvePrerenderStaticDir } from "./prerender.js";
|
|
7
|
-
import { dirname, join, relative, resolve } from "pathe";
|
|
7
|
+
import { dirname, isAbsolute, join, relative, resolve } from "pathe";
|
|
8
8
|
import * as nodeFs from "node:fs";
|
|
9
9
|
import { existsSync, readFileSync, readdirSync, realpathSync, statSync } from "node:fs";
|
|
10
10
|
import { checkProjectDependenciesOnce, loadUbeanConfig, resolveModules, resolvePrerenderConfig, tryGetConfig } from "@ubean/config";
|
|
@@ -1218,7 +1218,7 @@ function readClientManifest(publicDir) {
|
|
|
1218
1218
|
}
|
|
1219
1219
|
/** 由 options 派生上下文(不做任何 IO)。 */
|
|
1220
1220
|
function createBuildContext(options) {
|
|
1221
|
-
const { cwd, config, preset, scanResult, minify =
|
|
1221
|
+
const { cwd, config, preset, scanResult, minify = config.build.minify, sourcemap = config.build.sourcemap, contentSnapshot } = options;
|
|
1222
1222
|
const mode = config.mode;
|
|
1223
1223
|
return {
|
|
1224
1224
|
cwd,
|
|
@@ -1301,7 +1301,7 @@ async function runEnvBuilds(builder, prepared) {
|
|
|
1301
1301
|
await builder.build(builder.environments.ubean);
|
|
1302
1302
|
}
|
|
1303
1303
|
if (hasPages) {
|
|
1304
|
-
const publicDir = join(cwd,
|
|
1304
|
+
const publicDir = isAbsolute(prepared.config.dir.public) ? prepared.config.dir.public : join(cwd, prepared.config.dir.public);
|
|
1305
1305
|
if (existsSync(publicDir)) {
|
|
1306
1306
|
logger$2.info("Copying public assets...");
|
|
1307
1307
|
await cp(publicDir, outDirs.public, { recursive: true });
|
|
@@ -2490,8 +2490,8 @@ async function buildEnvironmentsForConfig(config) {
|
|
|
2490
2490
|
return createBuildEnvironments({
|
|
2491
2491
|
outDirs,
|
|
2492
2492
|
clientInput: existsSync(clientEntryPath) ? clientEntryPath : join(outDirs.virtual, "client-entry.mjs"),
|
|
2493
|
-
minify:
|
|
2494
|
-
sourcemap:
|
|
2493
|
+
minify: config.build.minify,
|
|
2494
|
+
sourcemap: config.build.sourcemap,
|
|
2495
2495
|
presetBuildConfig: getPresetBuildConfig(resolvePresetByName(config.build.preset)),
|
|
2496
2496
|
ssrNoExternal: ssrSingletonProdSsr().noExternal
|
|
2497
2497
|
});
|
|
@@ -2700,6 +2700,7 @@ function ubeanPlugin(options) {
|
|
|
2700
2700
|
});
|
|
2701
2701
|
const announceMissingOpenApiTypes = async () => {
|
|
2702
2702
|
if (!ubeanConfig) return;
|
|
2703
|
+
if (ubeanConfig.mode === "ssg" || ubeanConfig.mode === "spa") return;
|
|
2703
2704
|
const filePath = join(ubeanConfig.rootDir, ".ubean", "openapi.d.ts");
|
|
2704
2705
|
try {
|
|
2705
2706
|
const app = await ensureDevApp(server);
|
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-15_4jzH7.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-CmtXmVIm.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 };
|
|
@@ -1009,6 +1009,22 @@ function renderErrorPage(error) {
|
|
|
1009
1009
|
function createUbeanRequestHandlers(server, options) {
|
|
1010
1010
|
const { skipHtmlTransform, onError } = options;
|
|
1011
1011
|
const handler = options.handler ?? createLazyBootstrapHandler(server, options.bootstrap);
|
|
1012
|
+
/**
|
|
1013
|
+
* `vite.config.ts` 的 `server.headers` 合并到 ubean 自己渲染的响应上。
|
|
1014
|
+
*
|
|
1015
|
+
* Vite 只把它应用到自己的中间件(`servePublicMiddleware` / `transformMiddleware`),而 ubean 的
|
|
1016
|
+
* 页面走 `respond()` 直接输出 —— 不合并的话「给所有响应加 header」在应用页面上静默失效。
|
|
1017
|
+
* 通过 `res.setHeader` 写的值优先(框架/Hono 显式设置的不该被配置文件盖掉)。
|
|
1018
|
+
*/
|
|
1019
|
+
function applyConfiguredHeaders(res) {
|
|
1020
|
+
const headers = server.config.server.headers;
|
|
1021
|
+
if (!headers) return;
|
|
1022
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
1023
|
+
if (value === void 0) continue;
|
|
1024
|
+
if (res.hasHeader(key)) continue;
|
|
1025
|
+
res.setHeader(key, value);
|
|
1026
|
+
}
|
|
1027
|
+
}
|
|
1012
1028
|
async function respond(req, res) {
|
|
1013
1029
|
const url = req.url || "/";
|
|
1014
1030
|
const webReq = await toWebRequest(req, "localhost", req.socket?.encrypted ? "https" : "http");
|
|
@@ -1025,9 +1041,11 @@ function createUbeanRequestHandlers(server, options) {
|
|
|
1025
1041
|
webRes.headers.forEach((value, key) => {
|
|
1026
1042
|
res.setHeader(key, value);
|
|
1027
1043
|
});
|
|
1044
|
+
applyConfiguredHeaders(res);
|
|
1028
1045
|
res.end(transformed);
|
|
1029
1046
|
return;
|
|
1030
1047
|
}
|
|
1048
|
+
applyConfiguredHeaders(res);
|
|
1031
1049
|
await sendWebResponse(res, webRes);
|
|
1032
1050
|
}
|
|
1033
1051
|
/** 统一错误处理:SSR 栈映射回源码,响应头已发出时只能断开。 */
|
|
@@ -1050,8 +1068,27 @@ function createUbeanRequestHandlers(server, options) {
|
|
|
1050
1068
|
const pathname = url.split("?")[0].split("#")[0];
|
|
1051
1069
|
return passThrough.some((prefix) => pathname.startsWith(prefix));
|
|
1052
1070
|
};
|
|
1071
|
+
/**
|
|
1072
|
+
* 命中 `vite.config.ts` 的 `server.proxy` 键?命中则让给 Vite。
|
|
1073
|
+
*
|
|
1074
|
+
* `proxyMiddleware` 在上游是 **`configureServer` 钩子之后**才 `use()` 的(本插件的 `pre` 走
|
|
1075
|
+
* 钩子体内),因此无扩展名的代理路径会被 `pre` 先吃掉 —— `isViteResourceRequest` 不认识
|
|
1076
|
+
* proxy 键,`/probe-proxy` 这种路径最终返回 ubean 的 404 而不是被代理。`/api/**` 这类路径
|
|
1077
|
+
* 明明写了 `server.proxy` 也一样,因为保留命名空间判据先命中。
|
|
1078
|
+
*
|
|
1079
|
+
* 前置让给 Vite 与 `routeRules.proxy` 不冲突:Vite 只代理配置里显式写了的键,没写就照旧归 ubean。
|
|
1080
|
+
*/
|
|
1081
|
+
const proxyKeys = Object.keys(server.config.server.proxy ?? {});
|
|
1082
|
+
const isProxyPath = (url) => {
|
|
1083
|
+
if (proxyKeys.length === 0) return false;
|
|
1084
|
+
const pathname = url.split("?")[0].split("#")[0];
|
|
1085
|
+
return proxyKeys.some((key) => {
|
|
1086
|
+
const pattern = key.startsWith("^") ? new RegExp(key) : null;
|
|
1087
|
+
return pattern ? pattern.test(pathname) : pathname.startsWith(key);
|
|
1088
|
+
});
|
|
1089
|
+
};
|
|
1053
1090
|
const pre = (req, res, next) => {
|
|
1054
|
-
if (isPassThrough(req.url || "/") || isViteResourceRequest(req.url || "/", req.headers)) {
|
|
1091
|
+
if (isPassThrough(req.url || "/") || isProxyPath(req.url || "/") || isViteResourceRequest(req.url || "/", req.headers)) {
|
|
1055
1092
|
next();
|
|
1056
1093
|
return;
|
|
1057
1094
|
}
|
package/dist/vue.js
CHANGED
|
@@ -1 +1 @@
|
|
|
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-
|
|
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-15_4jzH7.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ubean/build",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.5",
|
|
4
4
|
"description": "Vite plugins, production build, SSG prerender, type codegen, and Server Actions plugin for ubean",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist"
|
|
@@ -49,19 +49,19 @@
|
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"@intlify/unplugin-vue-i18n": "11.2.6",
|
|
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.5",
|
|
53
|
+
"@ubean/client": "0.6.5",
|
|
54
|
+
"@ubean/config": "0.6.5",
|
|
55
|
+
"@ubean/i18n": "0.6.5",
|
|
56
|
+
"@ubean/islands": "0.6.5",
|
|
57
|
+
"@ubean/markdown": "0.6.5",
|
|
58
|
+
"@ubean/pages": "0.6.5",
|
|
59
|
+
"@ubean/preset": "0.6.5",
|
|
60
|
+
"@ubean/routes": "0.6.5",
|
|
61
|
+
"@ubean/scan": "0.6.5",
|
|
62
|
+
"@ubean/server": "0.6.5",
|
|
63
|
+
"@ubean/shared": "0.6.5",
|
|
64
|
+
"@ubean/vue": "0.6.5",
|
|
65
65
|
"@vitejs/plugin-vue": "^6.0.10",
|
|
66
66
|
"openapi-typescript": "^7.13.0",
|
|
67
67
|
"pathe": "^2.0.3",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"unplugin-auto-import": "21.1.0",
|
|
71
71
|
"unplugin-vue-components": "^32.1.0",
|
|
72
72
|
"unplugin-vue-markdown": "^32.1.1",
|
|
73
|
-
"vue-i18n": "11.4.
|
|
73
|
+
"vue-i18n": "11.4.15"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
76
|
"@types/node": "^26.6.5",
|