@dev-to/react-plugin 0.1.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/README.md +64 -0
- package/dist/constants.d.ts +11 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/debugHtml.d.ts +20 -0
- package/dist/debugHtml.d.ts.map +1 -0
- package/dist/debugTools.d.ts +10 -0
- package/dist/debugTools.d.ts.map +1 -0
- package/dist/devComponentMap.d.ts +4 -0
- package/dist/devComponentMap.d.ts.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1723 -0
- package/dist/lan.d.ts +2 -0
- package/dist/lan.d.ts.map +1 -0
- package/dist/libBuildUtils.d.ts +44 -0
- package/dist/libBuildUtils.d.ts.map +1 -0
- package/dist/pathUtils.d.ts +7 -0
- package/dist/pathUtils.d.ts.map +1 -0
- package/dist/plugin.d.ts +6 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/transformUtils.d.ts +27 -0
- package/dist/transformUtils.d.ts.map +1 -0
- package/dist/types.d.ts +74 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/virtualModules.d.ts +5 -0
- package/dist/virtualModules.d.ts.map +1 -0
- package/package.json +42 -0
package/README.md
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# @dev-to/react-plugin
|
|
2
|
+
|
|
3
|
+
一个用于 **Vite + React** 的“宿主桥接”插件:在 Vite Dev Server 上暴露稳定的桥接入口(contract/init/runtime/debug),让非 Vite 页面(例如 Electron、旧系统、微前端容器)也能加载并热更新 Vite 侧的 React 组件。
|
|
4
|
+
|
|
5
|
+
## 安装
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pnpm add -D @dev-to/react-plugin
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 使用
|
|
12
|
+
|
|
13
|
+
在 `vite.config.ts` 中启用:
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
import { defineConfig } from 'vite'
|
|
17
|
+
import react from '@vitejs/plugin-react'
|
|
18
|
+
import { devToReactPlugin } from '@dev-to/react-plugin'
|
|
19
|
+
|
|
20
|
+
export default defineConfig({
|
|
21
|
+
plugins: [
|
|
22
|
+
react(),
|
|
23
|
+
devToReactPlugin({
|
|
24
|
+
// 组件名 -> 入口路径(相对/绝对路径均可)
|
|
25
|
+
MyCard: 'src/MyCard.tsx',
|
|
26
|
+
|
|
27
|
+
// '/' 表示使用默认入口(优先 src/App.*,其次 src/index.*)
|
|
28
|
+
Other: '/'
|
|
29
|
+
})
|
|
30
|
+
]
|
|
31
|
+
})
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### devComponentMap 形态
|
|
35
|
+
|
|
36
|
+
- `devToReactPlugin()`:通配符模式(默认 `'*': '/'`),便于开发;但 `vite build --mode lib` 需要显式 componentName。
|
|
37
|
+
- `devToReactPlugin('MyCard')`:字符串快捷模式,等价于 `{ MyCard: '/' }`。
|
|
38
|
+
- `devToReactPlugin({ MyCard: 'src/MyCard.tsx' })`:显式映射(推荐,且 lib 构建必须)。
|
|
39
|
+
|
|
40
|
+
## 稳定桥接路径
|
|
41
|
+
|
|
42
|
+
插件会提供以下稳定路径(下划线版本):
|
|
43
|
+
|
|
44
|
+
- Contract:`/__dev_to_react__/contract.js`
|
|
45
|
+
- Init(安装 HMR + React Refresh preamble):`/__dev_to_react__/init.js`
|
|
46
|
+
- React Runtime(React + ReactDOMClient):`/__dev_to_react__/react-runtime.js`
|
|
47
|
+
- Debug:`/__dev_to_react__/debug.html` / `debug.json`
|
|
48
|
+
|
|
49
|
+
这些路径与事件名常量集中在 `@dev-to/react-shared`,用于保证 Vite 侧与宿主侧协议一致。
|
|
50
|
+
|
|
51
|
+
## 生产构建(Library Mode)
|
|
52
|
+
|
|
53
|
+
执行 `vite build --mode lib` 时,插件会按 `devComponentMap` 为每个组件产出一个 UMD bundle,默认输出到 `dist/<component>/`。
|
|
54
|
+
|
|
55
|
+
> 提示:`'*': '/'` 的通配符模式仅适合开发;lib 构建请显式列出组件名。
|
|
56
|
+
|
|
57
|
+
## 与 @dev-to/react-loader 配套
|
|
58
|
+
|
|
59
|
+
宿主侧建议使用 `@dev-to/react-loader` 的 `ReactLoader`,它会自动:
|
|
60
|
+
|
|
61
|
+
- 拉取 contract
|
|
62
|
+
- 先加载 init(确保 Fast Refresh 生效)
|
|
63
|
+
- 再加载 React Runtime 与目标模块
|
|
64
|
+
- 监听 full-reload 事件并触发热重载
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const PLUGIN_NAME: "dev_to_react";
|
|
2
|
+
export declare const PLUGIN_LOG_PREFIX: "[dev_to_react]";
|
|
3
|
+
export declare const STABLE_BASE_PATH: "/__dev_to_react__";
|
|
4
|
+
export declare const STABLE_CONTRACT_PATH: "/__dev_to_react__/contract.js";
|
|
5
|
+
export declare const STABLE_INIT_PATH: "/__dev_to_react__/init.js";
|
|
6
|
+
export declare const STABLE_REACT_RUNTIME_PATH: "/__dev_to_react__/react-runtime.js";
|
|
7
|
+
export declare const STABLE_DEBUG_HTML_PATH: "/__dev_to_react__/debug.html";
|
|
8
|
+
export declare const STABLE_DEBUG_JSON_PATH: "/__dev_to_react__/debug.json";
|
|
9
|
+
export declare const EVENT_FULL_RELOAD: "dev_to_react:full-reload";
|
|
10
|
+
export declare const EVENT_HMR_UPDATE: "dev_to_react:hmr-update";
|
|
11
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,WAAW,gBAAyB,CAAA;AACjD,eAAO,MAAM,iBAAiB,kBAA8B,CAAA;AAE5D,eAAO,MAAM,gBAAgB,qBAAyB,CAAA;AACtD,eAAO,MAAM,oBAAoB,iCAA6B,CAAA;AAC9D,eAAO,MAAM,gBAAgB,6BAAyB,CAAA;AACtD,eAAO,MAAM,yBAAyB,sCAAkC,CAAA;AACxE,eAAO,MAAM,sBAAsB,gCAA+B,CAAA;AAClE,eAAO,MAAM,sBAAsB,gCAA+B,CAAA;AAElE,eAAO,MAAM,iBAAiB,4BAAiC,CAAA;AAC/D,eAAO,MAAM,gBAAgB,2BAAgC,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { BridgeStats, DevComponentAudit } from './types.js';
|
|
2
|
+
export interface ViteServerConfigLite {
|
|
3
|
+
host: unknown;
|
|
4
|
+
port?: number;
|
|
5
|
+
strictPort?: boolean;
|
|
6
|
+
cors?: unknown;
|
|
7
|
+
https: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface DebugHtmlRenderParams {
|
|
10
|
+
audit: DevComponentAudit;
|
|
11
|
+
resolvedDevComponentMap: Record<string, string>;
|
|
12
|
+
entryPathMap?: Record<string, string>;
|
|
13
|
+
stats: BridgeStats;
|
|
14
|
+
serverConfigLite: ViteServerConfigLite;
|
|
15
|
+
originCandidates: string[];
|
|
16
|
+
actualPort: number | undefined;
|
|
17
|
+
configFilePath?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function renderDebugHtml(params: DebugHtmlRenderParams): string;
|
|
20
|
+
//# sourceMappingURL=debugHtml.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debugHtml.d.ts","sourceRoot":"","sources":["../src/debugHtml.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEhE,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,iBAAiB,CAAA;IACxB,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,KAAK,EAAE,WAAW,CAAA;IAClB,gBAAgB,EAAE,oBAAoB,CAAA;IACtC,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB,UAyf5D"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ViteDevServer } from 'vite';
|
|
2
|
+
import type { BridgeContract, BridgeStats, DebugStartupState, DevComponentAudit } from './types.js';
|
|
3
|
+
export interface DebugToolsContext {
|
|
4
|
+
contract: BridgeContract;
|
|
5
|
+
stats: BridgeStats;
|
|
6
|
+
audit: DevComponentAudit;
|
|
7
|
+
open?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function installDebugTools(server: ViteDevServer, ctx: DebugToolsContext, state: DebugStartupState): void;
|
|
10
|
+
//# sourceMappingURL=debugTools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debugTools.d.ts","sourceRoot":"","sources":["../src/debugTools.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnG,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,cAAc,CAAA;IACxB,KAAK,EAAE,WAAW,CAAA;IAClB,KAAK,EAAE,iBAAiB,CAAA;IACxB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAqFD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,QAkQxG"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { DevComponentMapInput, ResolvedDevComponentConfig } from './types.js';
|
|
2
|
+
export declare function toViteFsPath(filePath: string): string;
|
|
3
|
+
export declare function resolveDevComponentConfig(rootDir: string, devComponentMap: DevComponentMapInput, fallbackRoot?: string): ResolvedDevComponentConfig;
|
|
4
|
+
//# sourceMappingURL=devComponentMap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devComponentMap.d.ts","sourceRoot":"","sources":["../src/devComponentMap.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAA;AAElF,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,UAI5C;AA4ED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,oBAAoB,EACrC,YAAY,CAAC,EAAE,MAAM,GACpB,0BAA0B,CAmE5B"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { EVENT_FULL_RELOAD, EVENT_HMR_UPDATE, PLUGIN_LOG_PREFIX, PLUGIN_NAME, STABLE_BASE_PATH, STABLE_CONTRACT_PATH, STABLE_DEBUG_HTML_PATH, STABLE_DEBUG_JSON_PATH, STABLE_INIT_PATH, STABLE_REACT_RUNTIME_PATH, } from './constants.js';
|
|
2
|
+
export { devToReactPlugin, viteHostReactBridgePlugin } from './plugin.js';
|
|
3
|
+
export type { BridgeContract, BridgeStats, BridgeStatsBucket, DebugStartupState, DevComponentAudit, DevComponentMapInput, DevToReactPluginOptions, ResolvedDevComponentConfig, ViteHostReactBridgePluginOptions, } from './types.js';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAEzE,YAAY,EACV,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,YAAY,CAAA"}
|