@lark-apaas/coding-html-devserver 0.1.2 → 0.1.3-alpha.0
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/lib/transform/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { type OgMetaOptions } from './og-meta';
|
|
|
7
7
|
* (纯拷贝步骤)共用本模块。各功能域拆分在同级文件:
|
|
8
8
|
* - view-context.ts:window 上下文(HBS 占位符 / 请求真值)
|
|
9
9
|
* - slardar.ts:Slardar + Performance + Tea 监控埋点
|
|
10
|
+
* - runtime.ts:miaoda-coding-sdk runtime(TEA 页面浏览埋点;豆包来源带水印)
|
|
10
11
|
* - preview-bridge.ts:妙搭预览桥(**仅 dev**)
|
|
11
12
|
* - og-meta.ts:title / og / description / favicon 原地改写
|
|
12
13
|
*
|
|
@@ -28,10 +29,10 @@ export interface InjectPlatformOptions {
|
|
|
28
29
|
ogMeta?: OgMetaOptions;
|
|
29
30
|
}
|
|
30
31
|
/**
|
|
31
|
-
* 对一份 HTML 注入全部平台能力(view-context + slardar + 额外清单 + og-meta)。
|
|
32
|
+
* 对一份 HTML 注入全部平台能力(view-context + slardar + runtime + 额外清单 + og-meta)。
|
|
32
33
|
* dev 插件与 build 步骤共用,唯一真相。默认 build 模式(emit HBS 占位符)。
|
|
33
34
|
*
|
|
34
35
|
* head-prepend 顺序(injectTags 按数组序 = 文档序):view-context 在最前,slardar 其后,
|
|
35
|
-
*
|
|
36
|
+
* runtime 再其后——保证 runtime 读 window.appId / collectEvent 时已就绪。预览桥仅 dev 注入。
|
|
36
37
|
*/
|
|
37
38
|
export declare function injectPlatformTags(html: string, opts?: InjectPlatformOptions): string;
|
package/lib/transform/index.js
CHANGED
|
@@ -5,6 +5,7 @@ exports.injectPlatformTags = injectPlatformTags;
|
|
|
5
5
|
const html_tags_1 = require("../html-tags");
|
|
6
6
|
const view_context_1 = require("./view-context");
|
|
7
7
|
const slardar_1 = require("./slardar");
|
|
8
|
+
const runtime_1 = require("./runtime");
|
|
8
9
|
const preview_bridge_1 = require("./preview-bridge");
|
|
9
10
|
const og_meta_1 = require("./og-meta");
|
|
10
11
|
/**
|
|
@@ -12,6 +13,7 @@ const og_meta_1 = require("./og-meta");
|
|
|
12
13
|
* (纯拷贝步骤)共用本模块。各功能域拆分在同级文件:
|
|
13
14
|
* - view-context.ts:window 上下文(HBS 占位符 / 请求真值)
|
|
14
15
|
* - slardar.ts:Slardar + Performance + Tea 监控埋点
|
|
16
|
+
* - runtime.ts:miaoda-coding-sdk runtime(TEA 页面浏览埋点;豆包来源带水印)
|
|
15
17
|
* - preview-bridge.ts:妙搭预览桥(**仅 dev**)
|
|
16
18
|
* - og-meta.ts:title / og / description / favicon 原地改写
|
|
17
19
|
*
|
|
@@ -23,17 +25,19 @@ const og_meta_1 = require("./og-meta");
|
|
|
23
25
|
*/
|
|
24
26
|
exports.PLATFORM_TAGS = [];
|
|
25
27
|
/**
|
|
26
|
-
* 对一份 HTML 注入全部平台能力(view-context + slardar + 额外清单 + og-meta)。
|
|
28
|
+
* 对一份 HTML 注入全部平台能力(view-context + slardar + runtime + 额外清单 + og-meta)。
|
|
27
29
|
* dev 插件与 build 步骤共用,唯一真相。默认 build 模式(emit HBS 占位符)。
|
|
28
30
|
*
|
|
29
31
|
* head-prepend 顺序(injectTags 按数组序 = 文档序):view-context 在最前,slardar 其后,
|
|
30
|
-
*
|
|
32
|
+
* runtime 再其后——保证 runtime 读 window.appId / collectEvent 时已就绪。预览桥仅 dev 注入。
|
|
31
33
|
*/
|
|
32
34
|
function injectPlatformTags(html, opts = {}) {
|
|
33
35
|
const mode = opts.mode ?? 'build';
|
|
34
36
|
const tags = [
|
|
35
37
|
(0, view_context_1.viewContextTag)(mode, { appId: opts.appId }, opts.viewCtx),
|
|
36
38
|
...(0, slardar_1.slardarTags)(opts.slardar),
|
|
39
|
+
// miaoda-coding-sdk runtime:依赖 collectEvent(slardar) + appId(view-context),故排其后
|
|
40
|
+
...(0, runtime_1.runtimeTags)(mode),
|
|
37
41
|
// 预览桥仅开发环境注入,build 产物不带(线上不经预览外壳)
|
|
38
42
|
...(mode === 'dev' ? (0, preview_bridge_1.previewBridgeTags)() : []),
|
|
39
43
|
...exports.PLATFORM_TAGS,
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runtimeTags = runtimeTags;
|
|
4
|
+
/**
|
|
5
|
+
* 注入 `@lark-apaas/miaoda-coding-sdk` 的 runtime 产物(TEA 页面浏览埋点;豆包来源额外带水印)。
|
|
6
|
+
*
|
|
7
|
+
* - **入口**按 `process.env.MIAODA_APP_SOURCE` 选:`'5'`(豆包来源)→ `doubao-runtime`,否则 `runtime`。
|
|
8
|
+
* - **变体**按 mode 选:dev → `.dev.js`(不自动上报、可调试);build → `.min.js`(引入即自动上报 VIEW)。
|
|
9
|
+
* - 走 sf3-scmcdn,版本即 URL(精确 pin、不可变)。
|
|
10
|
+
*
|
|
11
|
+
* 依赖 `window.collectEvent`(slardar 注入的 Tea collector)与 `window.appId`(view-context),
|
|
12
|
+
* 故须排在二者之后注入。
|
|
13
|
+
*/
|
|
14
|
+
/** miaoda-coding-sdk 的 CDN 版本(发布后随版本回填)。 */
|
|
15
|
+
const CODING_SDK_VERSION = '0.0.1';
|
|
16
|
+
/** sf3 SCM CDN 基址。 */
|
|
17
|
+
const CDN_BASE = 'https://sf3-scmcdn-cn.feishucdn.com/obj/feishu-static/miaoda/coding-sdk';
|
|
18
|
+
/** 豆包来源值(对齐 app_meta.source / AppSource_Doubao)。 */
|
|
19
|
+
const DOUBAO_SOURCE = '5';
|
|
20
|
+
/** miaoda-coding-sdk runtime 的 head-prepend script tag(dev → .dev.js / build → .min.js)。 */
|
|
21
|
+
function runtimeTags(mode) {
|
|
22
|
+
const entry = process.env.MIAODA_APP_SOURCE === DOUBAO_SOURCE ? 'doubao-runtime' : 'runtime';
|
|
23
|
+
const variant = mode === 'dev' ? 'dev' : 'min';
|
|
24
|
+
const src = `${CDN_BASE}/${CODING_SDK_VERSION}/${entry}.${variant}.js`;
|
|
25
|
+
return [
|
|
26
|
+
{
|
|
27
|
+
tag: 'script',
|
|
28
|
+
attrs: { src, crossorigin: 'anonymous', defer: true },
|
|
29
|
+
injectTo: 'head-prepend',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lark-apaas/coding-html-devserver",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3-alpha.0",
|
|
4
4
|
"description": "Dev/build toolchain for the miaoda-coding html (pure HTML) stack. Wraps vite (dev + HMR) behind a bin so the template never sees vite; build is pure-copy + platform-script injection + optional minify.",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|