@bleedingdev/modern-js-main-doc 3.8.2-ultramodern.9 → 3.8.3-ultramodern.1

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.
@@ -9,7 +9,7 @@ import NodeVersion from '@site-docs-en/components/nodeVersion.mdx';
9
9
  It is recommended to use [pnpm](https://pnpm.io/installation) to manage dependencies:
10
10
 
11
11
  ```bash
12
- mise use pnpm@11.21.0
12
+ mise use pnpm@11.24.0
13
13
  ```
14
14
 
15
15
  :::note
@@ -54,7 +54,7 @@ would give your app a second Effect identity. Before setting
54
54
  `/effect-server`, `/effect-edge` or `/effect-client`, install the exact cohort:
55
55
 
56
56
  ```bash
57
- pnpm add effect@4.0.0-beta.107 @effect/opentelemetry@4.0.0-beta.107
57
+ pnpm add effect@4.0.0-rc.112 @effect/opentelemetry@4.0.0-rc.112
58
58
  ```
59
59
 
60
60
  The pin is exact because UltraModern ships Effect as one lockstep cohort. Apps
@@ -219,17 +219,17 @@ generated apps use:
219
219
 
220
220
  ```yaml
221
221
  trustPolicyExclude:
222
- - 'effect@4.0.0-beta.107'
223
- - '@effect/opentelemetry@4.0.0-beta.107'
222
+ - 'effect@4.0.0-rc.112'
223
+ - '@effect/opentelemetry@4.0.0-rc.112'
224
224
 
225
225
  overrides:
226
- '@effect/opentelemetry': 4.0.0-beta.107
227
- '@effect/vitest': 4.0.0-beta.107
228
- effect: 4.0.0-beta.107
226
+ '@effect/opentelemetry': 4.0.0-rc.112
227
+ '@effect/vitest': 4.0.0-rc.112
228
+ effect: 4.0.0-rc.112
229
229
  ```
230
230
 
231
231
  Do not add a different direct `effect` version in an app package. A mismatched
232
- Effect beta can fail while building layers or HTTP middleware because runtime
232
+ Effect prerelease can fail while building layers or HTTP middleware because runtime
233
233
  services come from different package instances. The strict 24-hour release-age
234
234
  gate applies to installed packages; the current cohort has no Effect age
235
235
  exemption, and override-only `@effect/vitest` is not an installed approval
@@ -146,8 +146,8 @@ migration work: move code to `shared/api.ts`, `api/index.ts`, and
146
146
  and `src/effect`.
147
147
 
148
148
  Generated strict Effect workspaces pin the compatible Effect cohort with pnpm
149
- overrides: `effect@4.0.0-beta.107`, `@effect/opentelemetry@4.0.0-beta.107`,
150
- and `@effect/vitest@4.0.0-beta.107`. Do not add app-local direct Effect
149
+ overrides: `effect@4.0.0-rc.112`, `@effect/opentelemetry@4.0.0-rc.112`,
150
+ and `@effect/vitest@4.0.0-rc.112`. Do not add app-local direct Effect
151
151
  versions that disagree with those overrides. The strict 24-hour release-age
152
152
  gate applies to installed packages; this cohort carries no Effect age
153
153
  exemption, and override-only `@effect/vitest` is not an installed approval
@@ -159,12 +159,21 @@ metadata transition; they are not release-age approvals.
159
159
 
160
160
  | Surface | Pin |
161
161
  | --- | --- |
162
- | Effect runtime and test cohort | `effect`, `@effect/opentelemetry`, and `@effect/vitest`: `4.0.0-beta.107` |
163
- | Effect compiler | `@effect/tsgo@0.36.2` |
164
- | TanStack Router | `@tanstack/react-router@1.170.25`, `@tanstack/router-core@1.171.21`, `@tanstack/history@1.162.1` |
165
- | Module Federation | `bridge-react`, `manifest`, `modern-js-v3`, and `rspack`: `2.8.2`; `@module-federation/node@2.7.49` |
166
- | React Router | `react-router@7.18.2` |
167
- | Node and package tooling | Node `26.7.0`, `@types/node@^26.2.0`, pnpm `11.21.0` |
162
+ | Effect runtime and test cohort | `effect`, `@effect/opentelemetry`, and `@effect/vitest`: `4.0.0-rc.112` |
163
+ | Effect compiler | `@effect/tsgo@0.37.0` |
164
+ | Oxc and Ultracite | `oxlint@1.80.0`, `oxfmt@0.65.0`, `ultracite@7.10.6` |
165
+ | TanStack Router | `@tanstack/react-router@1.170.32`, `@tanstack/router-core@1.171.27`, `@tanstack/history@1.162.1` |
166
+ | Module Federation | `bridge-react`, `manifest`, `modern-js-v3`, and `rspack`: `2.9.0`; `@module-federation/node@2.7.50` |
167
+ | Tailwind CSS | `tailwindcss@4.3.3` |
168
+ | Node and package tooling | Node `26.7.0`, `@types/node@^26.2.0`, pnpm `11.24.0` |
169
+
170
+ Generated workspaces default to Module Federation bridge-react's router-free
171
+ base entry (`bridge.enableBridgeRouter: false`), with TanStack Router as the
172
+ application router. Declaring `react-router` (or `react-router-dom`) as a
173
+ direct dependency of an app marks it a React Router consumer: the
174
+ generator/migration then emit `enableBridgeRouter: true` for that app's
175
+ federation config, the workspace validator accepts it, and the UltraModern
176
+ preset aliases `react-router`'s entrypoints for the app's own routing.
168
177
 
169
178
  Gradual migration means old, unmigrated Modern.js apps can keep their existing
170
179
  runtime until they are converted. Once a surface is generated or migrated as
@@ -248,6 +257,94 @@ directories, and caches are isolated per app, build target, and Rspack
248
257
  environment so local `build`, `cloudflare:build`, and multi-environment
249
258
  compilers do not share mutable build state.
250
259
 
260
+ ## Configure the public preset
261
+
262
+ Use `presetUltramodern(appConfig, presetOptions)` inside the normal Modern.js
263
+ `defineConfig` call:
264
+
265
+ ```ts title="modern.config.ts"
266
+ import { defineConfig, presetUltramodern } from '@modern-js/app-tools';
267
+
268
+ export default defineConfig(
269
+ presetUltramodern(
270
+ {
271
+ output: {
272
+ precompress: false,
273
+ },
274
+ server: {
275
+ telemetry: {
276
+ failLoudStartup: true,
277
+ },
278
+ },
279
+ },
280
+ {
281
+ appId: 'catalog',
282
+ enableModuleFederationSSR: false,
283
+ enableTelemetryExporters: false,
284
+ },
285
+ ),
286
+ );
287
+ ```
288
+
289
+ The first argument is ordinary `AppUserConfig`. It contains app-owned config
290
+ and wins where it supplies an override. The second argument controls the
291
+ preset itself. Use its typed options, such as `enableBffRequestId: false`,
292
+ `enableTelemetry: false`, `enableTelemetryExporters: false`, and
293
+ `enableModuleFederationSSR: false`, to turn preset features off.
294
+
295
+ Composition follows the Modern.js config merge rules:
296
+
297
+ - Nested records merge, so changing one nested field keeps its preset
298
+ siblings.
299
+ - Scalars and `false` supplied by the app override preset values. Omitting a
300
+ field, or leaving it `undefined`, keeps the preset value.
301
+ - Arrays and config hooks compose in preset-first order. Non-function array
302
+ entries are deduplicated by deep equality, while function entries are all
303
+ retained. An empty array or empty record does not clear values already
304
+ supplied by the preset.
305
+
306
+ There is no generic reset sentinel. Use a typed preset option for preset-owned
307
+ behavior and a normal app config override for app-owned behavior.
308
+
309
+ `createPresetUltramodernConfig(options)` is an advanced API for inspecting or
310
+ materializing a fresh preset config. Do not spread its result into another
311
+ config object. Object spread is shallow, so replacing `server`, `output`, or
312
+ another nested record can silently discard preset siblings. Use
313
+ `presetUltramodern(...)` for authoring `modern.config.ts`.
314
+
315
+ ### Bare preset and generated workspace policy
316
+
317
+ The preset and the workspace generator own different parts of the config:
318
+
319
+ | Source | Identity | Remaining config |
320
+ | --- | --- | --- |
321
+ | Bare `createPresetUltramodernConfig()` result | Uses `appId: 'app'` and has no `deliveryUnit` | Uses the preset defaults. Telemetry stays enabled, but no exporter is configured until its endpoint is set. |
322
+ | Generated app | Supplies the app-specific `appId` and stamped `deliveryUnit` | Inherits the other strict defaults from `presetUltramodern(...)`. |
323
+ | Application | Supplies the first `appConfig` argument | Overrides app-owned fields through the normal Modern.js merge. |
324
+
325
+ Keep the generated `appId` and `deliveryUnit` options intact. To change
326
+ preset-owned behavior, use typed options such as
327
+ `enableTelemetryExporters: false`,
328
+ `enableTelemetry: false`, `enableBffRequestId: false`, or
329
+ `enableModuleFederationSSR: false`. To change an app-owned field, put the
330
+ override in the first argument, as in the example above.
331
+
332
+ Telemetry exporter endpoints are unset by default:
333
+
334
+ - `MODERN_TELEMETRY_OTLP_ENDPOINT` enables only the OTLP exporter.
335
+ - `MODERN_TELEMETRY_VICTORIA_ENDPOINT` enables only the VictoriaMetrics
336
+ exporter.
337
+ - Setting both enables both. Leaving both unset keeps the telemetry pipeline
338
+ enabled without configuring an exporter.
339
+
340
+ The typed `otlpEndpoint` and `victoriaMetricsEndpoint` preset options provide
341
+ the same per-exporter behavior without environment variables.
342
+
343
+ ```bash
344
+ MODERN_TELEMETRY_OTLP_ENDPOINT=https://otel.example.com/v1/logs \
345
+ mise exec -- pnpm dev
346
+ ```
347
+
251
348
  ## Human Workflow
252
349
 
253
350
  The public BleedingDev create package has one supported generated product. The
@@ -426,18 +523,6 @@ BleedingDev packages are published through GitHub Actions trusted publishing.
426
523
  The public workflow is tokenless; do not publish packages manually from a
427
524
  developer machine.
428
525
 
429
- ## Baseline Switches (Opt-out)
430
-
431
- The generated `presetUltramodern(...)` starter enables strict platform contracts. Use these env switches to opt out per app or per environment:
432
-
433
- - `MODERN_BASELINE_ENABLE_MF_SSR` (default: `true`): Enables app-level MF SSR baseline contract (`server.ssr.mode: 'stream'` + `moduleFederationAppSSR`). Disable when the app does not use app-level MF SSR, or when you need plain SSR/CSR behavior first.
434
- - `MODERN_BASELINE_ENABLE_BFF_REQUEST_ID` (default: `true`): Enables default BFF producer identity contract (`bff.requestId`). Disable when the app does not need cross-project producer isolation.
435
- - `MODERN_BASELINE_ENABLE_TELEMETRY_EXPORTERS` (default: `true`): Enables telemetry exporters in baseline config. Disable when the environment has no telemetry backend yet.
436
- - `MODERN_BASELINE_APP_ID` (default: `basename(process.cwd())`): Overrides baseline `bff.requestId` identity. Set this when you need a fixed platform-wide producer ID convention.
437
- - `MODERN_TELEMETRY_OTLP_ENDPOINT` (default: `http://127.0.0.1:4318/v1/logs`): OTLP exporter endpoint. Override when you route telemetry through a different collector endpoint.
438
- - `MODERN_TELEMETRY_VICTORIA_ENDPOINT` (default: `http://127.0.0.1:8428/api/v1/import/prometheus`): VictoriaMetrics exporter endpoint. Override when you use a different VM ingress endpoint.
439
- - `MODERN_TELEMETRY_FAIL_LOUD_STARTUP` (default: `true`): Fails startup if configured exporters fail startup health checks. Disable in local/dev environments where temporary telemetry outage should not block boot.
440
-
441
526
  ## Related Docs
442
527
 
443
528
  - [BFF Runtime Frameworks](/guides/advanced-features/bff/frameworks)
@@ -9,7 +9,7 @@ import NodeVersion from '@site-docs/components/nodeVersion.mdx';
9
9
  推荐使用 [pnpm](https://pnpm.io/installation) 来管理依赖:
10
10
 
11
11
  ```bash
12
- mise use pnpm@11.21.0
12
+ mise use pnpm@11.24.0
13
13
  ```
14
14
 
15
15
  :::note
@@ -53,7 +53,7 @@ import EnableBFFCaution from "@site-docs/components/enable-bff-caution";
53
53
  `/effect-client` 之前,请安装精确版本的依赖组:
54
54
 
55
55
  ```bash
56
- pnpm add effect@4.0.0-beta.107 @effect/opentelemetry@4.0.0-beta.107
56
+ pnpm add effect@4.0.0-rc.112 @effect/opentelemetry@4.0.0-rc.112
57
57
  ```
58
58
 
59
59
  采用精确版本是因为 UltraModern 以锁步依赖组的方式发布 Effect。只使用
@@ -214,16 +214,16 @@ Effect 版本组。当前 UltraModern 版本组使用:
214
214
 
215
215
  ```yaml
216
216
  trustPolicyExclude:
217
- - 'effect@4.0.0-beta.107'
218
- - '@effect/opentelemetry@4.0.0-beta.107'
217
+ - 'effect@4.0.0-rc.112'
218
+ - '@effect/opentelemetry@4.0.0-rc.112'
219
219
 
220
220
  overrides:
221
- '@effect/opentelemetry': 4.0.0-beta.107
222
- '@effect/vitest': 4.0.0-beta.107
223
- effect: 4.0.0-beta.107
221
+ '@effect/opentelemetry': 4.0.0-rc.112
222
+ '@effect/vitest': 4.0.0-rc.112
223
+ effect: 4.0.0-rc.112
224
224
  ```
225
225
 
226
- 不要在应用包里添加不同版本的直接 `effect` 依赖。Effect beta 不一致时,Layer 或 HTTP
226
+ 不要在应用包里添加不同版本的直接 `effect` 依赖。Effect 预发布版本不一致时,Layer 或 HTTP
227
227
  middleware 构建可能因为运行时 service 来自不同包实例而失败。严格的 24 小时发布年龄
228
228
  门禁适用于实际安装的包;当前版本组没有 Effect 年龄豁免,且仅用于 override 的
229
229
  `@effect/vitest` 不是已安装的审批目标。
@@ -128,8 +128,8 @@ pnpm overrides/trust policy 和 pnpm lockfile。剩余失败就是源码迁移
128
128
  `api/lambda`、`shared/effect` 和 `src/effect`。
129
129
 
130
130
  严格 Effect 生成 workspace 会通过 pnpm overrides 固定兼容版本组:
131
- `effect@4.0.0-beta.107`、`@effect/opentelemetry@4.0.0-beta.107` 和
132
- `@effect/vitest@4.0.0-beta.107`。不要添加与这些 overrides 冲突的 app 本地直接
131
+ `effect@4.0.0-rc.112`、`@effect/opentelemetry@4.0.0-rc.112` 和
132
+ `@effect/vitest@4.0.0-rc.112`。不要添加与这些 overrides 冲突的 app 本地直接
133
133
  Effect 版本。严格的 24 小时发布年龄门禁适用于实际安装的包;当前版本组不包含 Effect
134
134
  年龄豁免,仅用于 override 的 `@effect/vitest` 也不是已安装的审批目标。
135
135
  `trustPolicyExclude` 是独立策略,仅为 `effect` 和
@@ -140,12 +140,21 @@ provenance attestation 的迁移;它不属于 release-age 审批。
140
140
 
141
141
  | 范围 | 固定版本 |
142
142
  | --- | --- |
143
- | Effect runtime 与测试版本组 | `effect`、`@effect/opentelemetry`、`@effect/vitest`:`4.0.0-beta.107` |
144
- | Effect compiler | `@effect/tsgo@0.36.2` |
145
- | TanStack Router | `@tanstack/react-router@1.170.25`、`@tanstack/router-core@1.171.21`、`@tanstack/history@1.162.1` |
146
- | Module Federation | `bridge-react`、`manifest`、`modern-js-v3`、`rspack`:`2.8.2`;`@module-federation/node@2.7.49` |
147
- | React Router | `react-router@7.18.2` |
148
- | Node 与包管理工具 | Node `26.7.0`、`@types/node@^26.2.0`、pnpm `11.21.0` |
143
+ | Effect runtime 与测试版本组 | `effect`、`@effect/opentelemetry`、`@effect/vitest`:`4.0.0-rc.112` |
144
+ | Effect compiler | `@effect/tsgo@0.37.0` |
145
+ | Oxc Ultracite | `oxlint@1.80.0`、`oxfmt@0.65.0`、`ultracite@7.10.6` |
146
+ | TanStack Router | `@tanstack/react-router@1.170.32`、`@tanstack/router-core@1.171.27`、`@tanstack/history@1.162.1` |
147
+ | Module Federation | `bridge-react`、`manifest`、`modern-js-v3`、`rspack`:`2.9.0`;`@module-federation/node@2.7.50` |
148
+ | Tailwind CSS | `tailwindcss@4.3.3` |
149
+ | Node 与包管理工具 | Node `26.7.0`、`@types/node@^26.2.0`、pnpm `11.24.0` |
150
+
151
+ 生成的 workspace 默认使用 `@module-federation/bridge-react` 的
152
+ router-free base entry(`bridge.enableBridgeRouter: false`),应用路由由
153
+ TanStack Router 承担;某个 app 的 package.json 直接依赖中声明了
154
+ `react-router`(或 `react-router-dom`),该 app 就会被标记为 React Router
155
+ consumer:generator/migration 会为该 app 的 federation 配置生成
156
+ `enableBridgeRouter: true`,workspace validator 也会接受这个值,UltraModern
157
+ preset 会为该 app 自身的路由 alias `react-router` 的入口。
149
158
 
150
159
  渐进迁移意味着尚未迁移的旧 Modern.js app 可以保留现有 runtime,直到被转换为
151
160
  UltraModern。一个 surface 一旦生成为或迁移为 UltraModern HTTP API,就只能使用
@@ -212,6 +221,87 @@ migration 时不要再用 app 本地 postprocess。Cloudflare public output 默
212
221
  会按 app、构建目标和 Rspack environment 隔离,避免本地 `build`、`cloudflare:build`
213
222
  以及多 environment compiler 共享可变构建状态。
214
223
 
224
+ ## 配置公开预设
225
+
226
+ 在标准 Modern.js `defineConfig` 调用中使用
227
+ `presetUltramodern(appConfig, presetOptions)`:
228
+
229
+ ```ts title="modern.config.ts"
230
+ import { defineConfig, presetUltramodern } from '@modern-js/app-tools';
231
+
232
+ export default defineConfig(
233
+ presetUltramodern(
234
+ {
235
+ output: {
236
+ precompress: false,
237
+ },
238
+ server: {
239
+ telemetry: {
240
+ failLoudStartup: true,
241
+ },
242
+ },
243
+ },
244
+ {
245
+ appId: 'catalog',
246
+ enableModuleFederationSSR: false,
247
+ enableTelemetryExporters: false,
248
+ },
249
+ ),
250
+ );
251
+ ```
252
+
253
+ 第一个参数是普通的 `AppUserConfig`,用于应用自己拥有的配置,并在提供覆盖值时胜出。
254
+ 第二个参数控制预设本身。关闭预设能力时,使用它提供的类型化选项,例如
255
+ `enableBffRequestId: false`、`enableTelemetry: false`、
256
+ `enableTelemetryExporters: false` 和 `enableModuleFederationSSR: false`。
257
+
258
+ 组合过程遵循 Modern.js 配置合并规则:
259
+
260
+ - 嵌套对象会递归合并。修改一个嵌套字段时,预设中的同级字段会保留。
261
+ - 应用提供的标量和 `false` 会覆盖预设值。省略字段或将其保留为 `undefined` 时,
262
+ 预设值会保留。
263
+ - 数组和配置 hook 按预设优先的顺序组合。非函数数组项按深度相等去重,函数项则全部
264
+ 保留。空数组或空对象不会清除预设已经提供的值。
265
+
266
+ 这里没有通用的 reset sentinel。预设拥有的行为应使用类型化预设选项控制,应用拥有的
267
+ 行为应使用普通应用配置覆盖。
268
+
269
+ `createPresetUltramodernConfig(options)` 是用于检查或生成一份全新预设配置的高级 API。
270
+ 不要把它的结果展开进另一个配置对象。对象展开是浅层操作,替换 `server`、`output`
271
+ 或其他嵌套对象时,会无提示地丢弃预设中的同级字段。编写 `modern.config.ts` 时应使用
272
+ `presetUltramodern(...)`。
273
+
274
+ ### 裸预设与生成 workspace 的策略
275
+
276
+ 预设和 workspace 生成器分别负责不同的配置:
277
+
278
+ | 来源 | 身份配置 | 其他配置 |
279
+ | --- | --- | --- |
280
+ | 裸 `createPresetUltramodernConfig()` 的结果 | 使用 `appId: 'app'`,不设置 `deliveryUnit` | 使用预设默认值。Telemetry 保持启用,但只有设置具体端点后才会配置对应导出器。 |
281
+ | 生成的应用 | 提供应用专属的 `appId` 和生成时写入的 `deliveryUnit` | 其他严格默认值继承自 `presetUltramodern(...)`。 |
282
+ | 应用 | 通过第一个 `appConfig` 参数提供配置 | 按 Modern.js 的正常合并规则覆盖应用拥有的字段。 |
283
+
284
+ 应保留生成的 `appId` 和 `deliveryUnit` 选项。修改预设拥有的行为时,使用类型化选项,
285
+ 例如
286
+ `enableTelemetryExporters: false`、`enableTelemetry: false`、
287
+ `enableBffRequestId: false` 或 `enableModuleFederationSSR: false`。修改应用拥有的
288
+ 字段时,应像上面的示例一样,把覆盖值放在第一个参数中。
289
+
290
+ Telemetry 导出端点默认不设置:
291
+
292
+ - `MODERN_TELEMETRY_OTLP_ENDPOINT` 只启用 OTLP 导出器。
293
+ - `MODERN_TELEMETRY_VICTORIA_ENDPOINT` 只启用 VictoriaMetrics 导出器。
294
+ - 同时设置两个变量会启用两个导出器。两个变量都未设置时,telemetry 管线保持启用,
295
+ 但不会配置导出器。
296
+
297
+ 类型化的 `otlpEndpoint` 和 `victoriaMetricsEndpoint` 预设选项也能提供同样的
298
+ 逐导出器行为,无需使用环境变量。
299
+
300
+ ```bash
301
+ MODERN_TELEMETRY_OTLP_ENDPOINT=https://otel.example.com/v1/logs \
302
+ mise exec -- pnpm dev
303
+ ```
304
+
215
305
  ## 人类工作流
216
306
 
217
307
  公开的 BleedingDev create 包只有一个受支持的生成产品。默认命令会创建一个
@@ -377,18 +467,6 @@ Live Cloudflare 与 Zephyr 证明需要公开 Worker URL 和 Zephyr 凭据。没
377
467
  BleedingDev 包通过 GitHub Actions trusted publishing 发布。公开发布 workflow 不使用
378
468
  长期 npm token;不要从开发机器手动发布包。
379
469
 
380
- ## 基线开关(可按需关闭)
381
-
382
- 生成的 `presetUltramodern(...)` 脚手架会开启更严格的平台契约。以下环境变量会在生成的 `modern.config.ts` 中读取,可按应用或按环境关闭/覆盖:
383
-
384
- - `MODERN_BASELINE_ENABLE_MF_SSR`(默认:`true`):开启应用级 MF SSR 基线契约(`server.ssr.mode: 'stream'` + `moduleFederationAppSSR`)。应用不使用 app-level MF SSR 或希望先走普通 SSR/CSR 路径时可关闭。
385
- - `MODERN_BASELINE_ENABLE_BFF_REQUEST_ID`(默认:`true`):开启默认 BFF producer 身份契约(`bff.requestId`)。应用不需要跨项目 producer 隔离时可关闭。
386
- - `MODERN_BASELINE_ENABLE_TELEMETRY_EXPORTERS`(默认:`true`):在基线配置中启用 telemetry 导出器。当前环境还没有 telemetry 后端时可关闭。
387
- - `MODERN_BASELINE_APP_ID`(默认:`basename(process.cwd())`):覆盖基线 `bff.requestId` 身份。需要固定、可治理的统一 producer ID 命名时建议设置。
388
- - `MODERN_TELEMETRY_OTLP_ENDPOINT`(默认:`http://127.0.0.1:4318/v1/logs`):OTLP 导出端点。接入其他 OTLP collector 地址时覆盖。
389
- - `MODERN_TELEMETRY_VICTORIA_ENDPOINT`(默认:`http://127.0.0.1:8428/api/v1/import/prometheus`):VictoriaMetrics 导出端点。接入其他 VM 写入地址时覆盖。
390
- - `MODERN_TELEMETRY_FAIL_LOUD_STARTUP`(默认:`true`):导出器健康检查失败时启动即失败(fail-loud)。本地/开发环境希望 telemetry 故障不阻断启动时可关闭。
391
-
392
470
  ## 相关文档
393
471
 
394
472
  - [BFF 运行时框架](/guides/advanced-features/bff/frameworks)
package/package.json CHANGED
@@ -19,12 +19,12 @@
19
19
  "modern.js",
20
20
  "ultramodern.js"
21
21
  ],
22
- "version": "3.8.2-ultramodern.9",
22
+ "version": "3.8.3-ultramodern.1",
23
23
  "publishConfig": {
24
24
  "access": "public"
25
25
  },
26
26
  "dependencies": {
27
- "@modern-js/sandpack-react": "npm:@bleedingdev/modern-js-sandpack-react@3.8.2-ultramodern.9",
27
+ "@modern-js/sandpack-react": "npm:@bleedingdev/modern-js-sandpack-react@3.8.3-ultramodern.1",
28
28
  "mermaid": "^11.16.0"
29
29
  },
30
30
  "devDependencies": {