@modern-js/runtime 2.54.6 → 2.56.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/dist/cjs/{ssr/serverRender/renderToString/index.js → cli/alias.js} +29 -18
- package/dist/cjs/cli/code.js +124 -0
- package/dist/cjs/cli/constants.js +23 -2
- package/dist/cjs/cli/index.js +91 -17
- package/dist/cjs/cli/ssr/index.js +137 -0
- package/dist/cjs/cli/template.js +101 -0
- package/dist/cjs/cli/template.server.js +71 -0
- package/dist/cjs/core/browser/hydrate.js +116 -0
- package/dist/cjs/core/browser/index.js +142 -0
- package/dist/cjs/core/compatible.js +39 -74
- package/dist/cjs/{ssr/serverRender/types.js → core/constants.js} +3 -3
- package/dist/cjs/core/context/index.js +39 -2
- package/dist/cjs/core/context/runtime.js +3 -3
- package/dist/cjs/core/loader/useLoader.js +2 -2
- package/dist/cjs/core/plugin/base.js +0 -4
- package/dist/cjs/core/plugin/index.js +6 -0
- package/dist/cjs/core/react/index.js +51 -0
- package/dist/cjs/{ssr/serverRender → core/server}/helmet.js +11 -2
- package/dist/cjs/core/server/index.js +38 -0
- package/dist/cjs/core/server/requestHandler.js +156 -0
- package/dist/cjs/core/server/server.js +34 -0
- package/dist/cjs/{ssr/serverRender/renderToStream/buildTemplate.share.js → core/server/shared.js} +7 -10
- package/dist/cjs/core/server/stream/afterTemplate.js +80 -0
- package/dist/cjs/{ssr/serverRender/renderToStream/bulidTemplate.before.js → core/server/stream/beforeTemplate.js} +11 -12
- package/dist/cjs/core/server/stream/createReadableStream.js +124 -0
- package/dist/cjs/core/server/stream/createReadableStream.worker.js +105 -0
- package/dist/cjs/core/server/stream/index.js +30 -0
- package/dist/cjs/core/server/stream/shared.js +112 -0
- package/dist/cjs/{ssr/serverRender/renderToStream → core/server/stream}/template.js +6 -10
- package/dist/cjs/core/server/string/index.js +152 -0
- package/dist/cjs/{ssr/serverRender/renderToString → core/server/string}/loadable.js +9 -12
- package/dist/cjs/core/server/string/prefetch.js +112 -0
- package/dist/cjs/core/server/string/ssrData.js +100 -0
- package/dist/cjs/core/server/string/styledComponent.js +53 -0
- package/dist/cjs/core/server/string/types.js +16 -0
- package/dist/cjs/core/server/tracer.js +60 -0
- package/dist/cjs/{ssr/serverRender → core/server}/utils.js +48 -2
- package/dist/cjs/{ssr/serverRender/renderToString/styledComponent.js → core/utils/merge.js} +28 -19
- package/dist/cjs/router/cli/code/index.js +12 -8
- package/dist/cjs/router/cli/code/templates.js +58 -3
- package/dist/cjs/router/cli/constants.js +6 -0
- package/dist/cjs/router/cli/entry.js +16 -17
- package/dist/cjs/router/cli/handler.js +22 -5
- package/dist/cjs/router/cli/index.js +29 -56
- package/dist/cjs/router/runtime/PrefetchLink.js +1 -1
- package/dist/cjs/router/runtime/index.js +2 -0
- package/dist/cjs/router/runtime/plugin.js +13 -40
- package/dist/cjs/router/runtime/plugin.node.js +24 -46
- package/dist/cjs/state/cli/index.js +7 -35
- package/dist/cjs/state/runtime/plugin.js +6 -15
- package/dist/esm/cli/alias.js +30 -0
- package/dist/esm/cli/code.js +131 -0
- package/dist/esm/cli/constants.js +15 -1
- package/dist/esm/cli/index.js +110 -18
- package/dist/esm/{ssr/cli → cli/ssr}/babel-plugin-ssr-loader-id.js +1 -1
- package/dist/esm/cli/ssr/index.js +127 -0
- package/dist/esm/{ssr/cli → cli/ssr}/loadable-bundler-plugin.js +1 -1
- package/dist/esm/cli/template.js +53 -0
- package/dist/esm/cli/template.server.js +26 -0
- package/dist/esm/core/browser/hydrate.js +88 -0
- package/dist/esm/core/browser/index.js +242 -0
- package/dist/esm/core/compatible.js +48 -90
- package/dist/esm/core/context/index.js +32 -1
- package/dist/esm/core/context/runtime.js +3 -2
- package/dist/esm/core/loader/useLoader.js +2 -2
- package/dist/esm/core/plugin/base.js +0 -4
- package/dist/esm/core/plugin/index.js +10 -0
- package/dist/esm/core/react/index.js +31 -0
- package/dist/esm/{ssr/serverRender → core/server}/helmet.js +10 -2
- package/dist/esm/core/server/index.js +16 -0
- package/dist/esm/core/server/react/prerender/type.js +0 -0
- package/dist/esm/core/server/requestHandler.js +181 -0
- package/dist/esm/core/server/server.js +8 -0
- package/dist/esm/core/server/shared.js +10 -0
- package/dist/esm/core/server/stream/afterTemplate.js +60 -0
- package/dist/esm/{ssr/serverRender/renderToStream/bulidTemplate.before.js → core/server/stream/beforeTemplate.js} +10 -11
- package/dist/esm/{ssr/serverRender/renderToStream/renderToPipe.js → core/server/stream/createReadableStream.js} +43 -38
- package/dist/esm/core/server/stream/createReadableStream.worker.js +142 -0
- package/dist/esm/core/server/stream/index.js +6 -0
- package/dist/esm/core/server/stream/shared.js +102 -0
- package/dist/esm/core/server/stream/template.js +42 -0
- package/dist/esm/core/server/string/index.js +219 -0
- package/dist/esm/{ssr/serverRender/renderToString → core/server/string}/loadable.js +10 -13
- package/dist/esm/{ssr → core/server/string}/prefetch.js +28 -22
- package/dist/esm/core/server/string/ssrData.js +83 -0
- package/dist/esm/core/server/string/styledComponent.js +34 -0
- package/dist/esm/core/server/string/types.js +0 -0
- package/dist/esm/core/server/tracer.js +34 -0
- package/dist/esm/core/server/utils.js +83 -0
- package/dist/esm/core/utils/merge.js +32 -0
- package/dist/esm/router/cli/code/index.js +13 -10
- package/dist/esm/router/cli/code/templates.js +100 -7
- package/dist/esm/router/cli/constants.js +4 -0
- package/dist/esm/router/cli/entry.js +19 -19
- package/dist/esm/router/cli/handler.js +70 -8
- package/dist/esm/router/cli/index.js +52 -65
- package/dist/esm/router/runtime/PrefetchLink.js +1 -1
- package/dist/esm/router/runtime/index.js +1 -0
- package/dist/esm/router/runtime/plugin.js +12 -20
- package/dist/esm/router/runtime/plugin.node.js +26 -82
- package/dist/esm/state/cli/index.js +9 -38
- package/dist/esm/state/runtime/plugin.js +5 -5
- package/dist/esm-node/cli/alias.js +28 -0
- package/dist/esm-node/cli/code.js +90 -0
- package/dist/esm-node/cli/constants.js +15 -1
- package/dist/esm-node/cli/index.js +83 -13
- package/dist/esm-node/{ssr/cli → cli/ssr}/babel-plugin-ssr-loader-id.js +1 -1
- package/dist/esm-node/cli/ssr/index.js +103 -0
- package/dist/esm-node/{ssr/cli → cli/ssr}/loadable-bundler-plugin.js +1 -1
- package/dist/esm-node/cli/template.js +64 -0
- package/dist/esm-node/cli/template.server.js +47 -0
- package/dist/esm-node/core/browser/hydrate.js +81 -0
- package/dist/esm-node/core/browser/index.js +108 -0
- package/dist/esm-node/core/compatible.js +39 -74
- package/dist/esm-node/core/context/index.js +32 -1
- package/dist/esm-node/core/context/runtime.js +3 -3
- package/dist/esm-node/core/loader/useLoader.js +2 -2
- package/dist/esm-node/core/plugin/base.js +0 -4
- package/dist/esm-node/core/plugin/index.js +5 -0
- package/dist/esm-node/core/react/index.js +27 -0
- package/dist/esm-node/{ssr/serverRender → core/server}/helmet.js +6 -2
- package/dist/esm-node/core/server/index.js +12 -0
- package/dist/esm-node/core/server/requestHandler.js +132 -0
- package/dist/esm-node/core/server/server.js +8 -0
- package/dist/esm-node/core/server/shared.js +6 -0
- package/dist/esm-node/core/server/stream/afterTemplate.js +56 -0
- package/dist/esm-node/{ssr/serverRender/renderToStream/bulidTemplate.before.js → core/server/stream/beforeTemplate.js} +8 -9
- package/dist/esm-node/{ssr/serverRender/renderToStream/renderToPipe.js → core/server/stream/createReadableStream.js} +41 -35
- package/dist/esm-node/core/server/stream/createReadableStream.worker.js +71 -0
- package/dist/esm-node/core/server/stream/index.js +6 -0
- package/dist/esm-node/core/server/stream/shared.js +75 -0
- package/dist/esm-node/core/server/stream/template.js +15 -0
- package/dist/esm-node/core/server/string/index.js +118 -0
- package/dist/esm-node/{ssr/serverRender/renderToString → core/server/string}/loadable.js +8 -11
- package/dist/esm-node/core/server/string/prefetch.js +78 -0
- package/dist/esm-node/core/server/string/ssrData.js +76 -0
- package/dist/esm-node/core/server/string/styledComponent.js +29 -0
- package/dist/esm-node/core/server/tracer.js +33 -0
- package/dist/esm-node/core/server/utils.js +60 -0
- package/dist/esm-node/core/utils/merge.js +29 -0
- package/dist/esm-node/router/cli/code/index.js +10 -7
- package/dist/esm-node/router/cli/code/templates.js +60 -6
- package/dist/esm-node/router/cli/constants.js +4 -0
- package/dist/esm-node/router/cli/entry.js +16 -17
- package/dist/esm-node/router/cli/handler.js +21 -5
- package/dist/esm-node/router/cli/index.js +31 -58
- package/dist/esm-node/router/runtime/PrefetchLink.js +1 -1
- package/dist/esm-node/router/runtime/index.js +1 -0
- package/dist/esm-node/router/runtime/plugin.js +13 -30
- package/dist/esm-node/router/runtime/plugin.node.js +25 -46
- package/dist/esm-node/state/cli/index.js +8 -36
- package/dist/esm-node/state/runtime/plugin.js +5 -5
- package/dist/types/cli/alias.d.ts +7 -0
- package/dist/types/cli/code.d.ts +10 -0
- package/dist/types/cli/constants.d.ts +7 -0
- package/dist/types/cli/index.d.ts +8 -1
- package/dist/types/cli/template.d.ts +27 -0
- package/dist/types/cli/template.server.d.ts +15 -0
- package/dist/types/common.d.ts +9 -0
- package/dist/types/core/browser/hydrate.d.ts +5 -0
- package/dist/types/core/browser/index.d.ts +3 -0
- package/dist/types/core/config.d.ts +5 -6
- package/dist/types/core/constants.d.ts +5 -0
- package/dist/types/core/context/index.d.ts +34 -1
- package/dist/types/core/context/runtime.d.ts +2 -2
- package/dist/types/core/plugin/base.d.ts +3 -33
- package/dist/types/core/plugin/index.d.ts +2 -11
- package/dist/types/core/plugin/runner.d.ts +1 -11
- package/dist/types/core/react/index.d.ts +6 -0
- package/dist/types/core/server/helmet.d.ts +3 -0
- package/dist/types/core/server/index.d.ts +4 -0
- package/dist/types/core/server/requestHandler.d.ts +11 -0
- package/dist/types/core/server/server.d.ts +4 -0
- package/dist/types/core/server/shared.d.ts +9 -0
- package/dist/types/core/server/stream/afterTemplate.d.ts +12 -0
- package/dist/types/core/server/stream/beforeTemplate.d.ts +8 -0
- package/dist/types/core/server/stream/createReadableStream.d.ts +2 -0
- package/dist/types/core/server/stream/createReadableStream.worker.d.ts +2 -0
- package/dist/types/core/server/stream/index.d.ts +1 -0
- package/dist/types/core/server/stream/shared.d.ts +22 -0
- package/dist/types/core/server/stream/template.d.ts +9 -0
- package/dist/types/core/server/string/index.d.ts +2 -0
- package/dist/types/core/server/string/loadable.d.ts +35 -0
- package/dist/types/core/server/string/prefetch.d.ts +16 -0
- package/dist/types/core/server/string/ssrData.d.ts +18 -0
- package/dist/types/core/server/string/styledComponent.d.ts +11 -0
- package/dist/types/core/server/string/types.d.ts +12 -0
- package/dist/types/core/server/tracer.d.ts +21 -0
- package/dist/types/core/server/utils.d.ts +19 -0
- package/dist/types/core/types.d.ts +35 -1
- package/dist/types/core/utils/merge.d.ts +6 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/router/cli/code/index.d.ts +3 -4
- package/dist/types/router/cli/code/templates.d.ts +9 -1
- package/dist/types/router/cli/constants.d.ts +2 -0
- package/dist/types/router/cli/handler.d.ts +1 -0
- package/dist/types/router/runtime/index.d.ts +1 -0
- package/dist/types/router/runtime/plugin.d.ts +1 -1
- package/dist/types/router/runtime/plugin.node.d.ts +1 -3
- package/dist/types/router/runtime/types.d.ts +1 -2
- package/dist/types/state/runtime/plugin.d.ts +2 -2
- package/package.json +52 -45
- package/types/router.d.ts +7 -2
- package/dist/cjs/ssr/cli/index.js +0 -200
- package/dist/cjs/ssr/index.js +0 -183
- package/dist/cjs/ssr/index.node.js +0 -86
- package/dist/cjs/ssr/prefetch.js +0 -92
- package/dist/cjs/ssr/serverRender/index.js +0 -39
- package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.after.js +0 -74
- package/dist/cjs/ssr/serverRender/renderToStream/index.js +0 -74
- package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.js +0 -104
- package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.worker.js +0 -108
- package/dist/cjs/ssr/serverRender/renderToString/buildHtml.js +0 -52
- package/dist/cjs/ssr/serverRender/renderToString/entry.js +0 -179
- package/dist/cjs/ssr/serverRender/renderToString/render.js +0 -61
- package/dist/cjs/ssr/serverRender/tracker.js +0 -113
- package/dist/cjs/ssr/utils.js +0 -94
- package/dist/esm/ssr/cli/index.js +0 -194
- package/dist/esm/ssr/index.js +0 -169
- package/dist/esm/ssr/index.node.js +0 -78
- package/dist/esm/ssr/serverRender/index.js +0 -55
- package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.after.js +0 -48
- package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.share.js +0 -12
- package/dist/esm/ssr/serverRender/renderToStream/index.js +0 -49
- package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.worker.js +0 -164
- package/dist/esm/ssr/serverRender/renderToStream/template.js +0 -46
- package/dist/esm/ssr/serverRender/renderToString/buildHtml.js +0 -34
- package/dist/esm/ssr/serverRender/renderToString/entry.js +0 -257
- package/dist/esm/ssr/serverRender/renderToString/index.js +0 -34
- package/dist/esm/ssr/serverRender/renderToString/render.js +0 -55
- package/dist/esm/ssr/serverRender/renderToString/styledComponent.js +0 -25
- package/dist/esm/ssr/serverRender/tracker.js +0 -82
- package/dist/esm/ssr/serverRender/utils.js +0 -21
- package/dist/esm/ssr/utils.js +0 -59
- package/dist/esm-node/ssr/cli/index.js +0 -166
- package/dist/esm-node/ssr/index.js +0 -147
- package/dist/esm-node/ssr/index.node.js +0 -50
- package/dist/esm-node/ssr/prefetch.js +0 -72
- package/dist/esm-node/ssr/serverRender/index.js +0 -19
- package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.after.js +0 -50
- package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.share.js +0 -8
- package/dist/esm-node/ssr/serverRender/renderToStream/index.js +0 -40
- package/dist/esm-node/ssr/serverRender/renderToStream/renderToPipe.worker.js +0 -88
- package/dist/esm-node/ssr/serverRender/renderToStream/template.js +0 -19
- package/dist/esm-node/ssr/serverRender/renderToString/buildHtml.js +0 -24
- package/dist/esm-node/ssr/serverRender/renderToString/entry.js +0 -149
- package/dist/esm-node/ssr/serverRender/renderToString/index.js +0 -17
- package/dist/esm-node/ssr/serverRender/renderToString/render.js +0 -27
- package/dist/esm-node/ssr/serverRender/renderToString/styledComponent.js +0 -20
- package/dist/esm-node/ssr/serverRender/tracker.js +0 -87
- package/dist/esm-node/ssr/serverRender/utils.js +0 -17
- package/dist/esm-node/ssr/utils.js +0 -57
- package/dist/types/ssr/index.d.ts +0 -11
- package/dist/types/ssr/index.node.d.ts +0 -5
- package/dist/types/ssr/prefetch.d.ts +0 -16
- package/dist/types/ssr/serverRender/helmet.d.ts +0 -2
- package/dist/types/ssr/serverRender/index.d.ts +0 -2
- package/dist/types/ssr/serverRender/renderToStream/buildTemplate.after.d.ts +0 -7
- package/dist/types/ssr/serverRender/renderToStream/buildTemplate.share.d.ts +0 -3
- package/dist/types/ssr/serverRender/renderToStream/bulidTemplate.before.d.ts +0 -2
- package/dist/types/ssr/serverRender/renderToStream/index.d.ts +0 -3
- package/dist/types/ssr/serverRender/renderToStream/renderToPipe.d.ts +0 -7
- package/dist/types/ssr/serverRender/renderToStream/renderToPipe.worker.d.ts +0 -12
- package/dist/types/ssr/serverRender/renderToStream/template.d.ts +0 -6
- package/dist/types/ssr/serverRender/renderToString/buildHtml.d.ts +0 -6
- package/dist/types/ssr/serverRender/renderToString/entry.d.ts +0 -24
- package/dist/types/ssr/serverRender/renderToString/index.d.ts +0 -2
- package/dist/types/ssr/serverRender/renderToString/loadable.d.ts +0 -26
- package/dist/types/ssr/serverRender/renderToString/render.d.ts +0 -16
- package/dist/types/ssr/serverRender/renderToString/styledComponent.d.ts +0 -15
- package/dist/types/ssr/serverRender/tracker.d.ts +0 -20
- package/dist/types/ssr/serverRender/types.d.ts +0 -49
- package/dist/types/ssr/serverRender/utils.d.ts +0 -9
- package/dist/types/ssr/utils.d.ts +0 -10
- /package/dist/cjs/{ssr/cli → cli/ssr}/babel-plugin-ssr-loader-id.js +0 -0
- /package/dist/cjs/{ssr/cli → cli/ssr}/loadable-bundler-plugin.js +0 -0
- /package/dist/cjs/{ssr/react/withCallback/index.js → core/browser/withCallback.js} +0 -0
- /package/dist/cjs/{ssr/serverRender → core/server}/constants.js +0 -0
- /package/dist/cjs/{ssr → core/server}/react/index.js +0 -0
- /package/dist/cjs/{ssr → core/server}/react/nossr/index.js +0 -0
- /package/dist/cjs/{ssr → core/server}/react/prerender/index.js +0 -0
- /package/dist/cjs/{ssr → core/server}/react/prerender/type.js +0 -0
- /package/dist/cjs/{ssr → core/server}/react/prerender/util.js +0 -0
- /package/dist/esm/{ssr/react/withCallback/index.js → core/browser/withCallback.js} +0 -0
- /package/dist/esm/{ssr/serverRender/types.js → core/constants.js} +0 -0
- /package/dist/esm/{ssr/serverRender → core/server}/constants.js +0 -0
- /package/dist/esm/{ssr → core/server}/react/index.js +0 -0
- /package/dist/esm/{ssr → core/server}/react/nossr/index.js +0 -0
- /package/dist/esm/{ssr → core/server}/react/prerender/index.js +0 -0
- /package/dist/esm/{ssr → core/server}/react/prerender/util.js +0 -0
- /package/dist/esm-node/{ssr/react/withCallback/index.js → core/browser/withCallback.js} +0 -0
- /package/dist/esm-node/{ssr/serverRender/types.js → core/constants.js} +0 -0
- /package/dist/esm-node/{ssr/serverRender → core/server}/constants.js +0 -0
- /package/dist/esm-node/{ssr → core/server}/react/index.js +0 -0
- /package/dist/esm-node/{ssr → core/server}/react/nossr/index.js +0 -0
- /package/dist/esm-node/{ssr → core/server}/react/prerender/index.js +0 -0
- /package/dist/esm-node/{ssr → core/server}/react/prerender/type.js +0 -0
- /package/dist/esm-node/{ssr → core/server}/react/prerender/util.js +0 -0
- /package/dist/{esm/ssr/react/prerender/type.js → esm-node/core/server/string/types.js} +0 -0
- /package/dist/types/{ssr/cli → cli/ssr}/babel-plugin-ssr-loader-id.d.ts +0 -0
- /package/dist/types/{ssr/cli → cli/ssr}/index.d.ts +0 -0
- /package/dist/types/{ssr/cli → cli/ssr}/loadable-bundler-plugin.d.ts +0 -0
- /package/dist/types/{ssr/react/withCallback/index.d.ts → core/browser/withCallback.d.ts} +0 -0
- /package/dist/types/{ssr/serverRender → core/server}/constants.d.ts +0 -0
- /package/dist/types/{ssr → core/server}/react/index.d.ts +0 -0
- /package/dist/types/{ssr → core/server}/react/nossr/index.d.ts +0 -0
- /package/dist/types/{ssr → core/server}/react/prerender/index.d.ts +0 -0
- /package/dist/types/{ssr → core/server}/react/prerender/type.d.ts +0 -0
- /package/dist/types/{ssr → core/server}/react/prerender/util.d.ts +0 -0
|
@@ -26,26 +26,37 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
31
|
-
|
|
29
|
+
var alias_exports = {};
|
|
30
|
+
__export(alias_exports, {
|
|
31
|
+
builderPluginAlias: () => builderPluginAlias
|
|
32
32
|
});
|
|
33
|
-
module.exports = __toCommonJS(
|
|
34
|
-
var
|
|
35
|
-
var
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
33
|
+
module.exports = __toCommonJS(alias_exports);
|
|
34
|
+
var import_path = __toESM(require("path"));
|
|
35
|
+
var import_constants = require("./constants");
|
|
36
|
+
const builderPluginAlias = ({ entrypoints, internalDirectory, metaName }) => ({
|
|
37
|
+
name: "runtime:alias",
|
|
38
|
+
setup(api) {
|
|
39
|
+
api.modifyRsbuildConfig((userConfig, { mergeRsbuildConfig }) => {
|
|
40
|
+
const entrypointsAlias = {};
|
|
41
|
+
const mainEntrypointsAlias = {};
|
|
42
|
+
entrypoints.forEach((entrypoint) => {
|
|
43
|
+
entrypointsAlias[`@${metaName}/runtime/registry/${entrypoint.entryName}`] = import_path.default.join(internalDirectory, entrypoint.entryName, import_constants.ENTRY_POINT_REGISTER_FILE_NAME);
|
|
44
|
+
if (entrypoint.isMainEntry) {
|
|
45
|
+
mainEntrypointsAlias[`@${metaName}/runtime/registry`] = import_path.default.join(internalDirectory, entrypoint.entryName, import_constants.ENTRY_POINT_REGISTER_FILE_NAME);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
return mergeRsbuildConfig(userConfig, {
|
|
49
|
+
source: {
|
|
50
|
+
alias: {
|
|
51
|
+
...entrypointsAlias,
|
|
52
|
+
...mainEntrypointsAlias
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
});
|
|
43
56
|
});
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
});
|
|
47
|
-
};
|
|
57
|
+
}
|
|
58
|
+
});
|
|
48
59
|
// Annotate the CommonJS export names for ESM import in node:
|
|
49
60
|
0 && (module.exports = {
|
|
50
|
-
|
|
61
|
+
builderPluginAlias
|
|
51
62
|
});
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var code_exports = {};
|
|
30
|
+
__export(code_exports, {
|
|
31
|
+
generateCode: () => generateCode
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(code_exports);
|
|
34
|
+
var import_path = __toESM(require("path"));
|
|
35
|
+
var import_utils = require("@modern-js/utils");
|
|
36
|
+
var import_constants = require("./constants");
|
|
37
|
+
var template = __toESM(require("./template"));
|
|
38
|
+
var serverTemplate = __toESM(require("./template.server"));
|
|
39
|
+
function getSSRMode(entry = import_utils.MAIN_ENTRY_NAME, config) {
|
|
40
|
+
const { ssr, ssrByEntries } = config.server;
|
|
41
|
+
if (config.output.ssg) {
|
|
42
|
+
return "string";
|
|
43
|
+
}
|
|
44
|
+
return checkSSRMode((ssrByEntries === null || ssrByEntries === void 0 ? void 0 : ssrByEntries[entry]) || ssr);
|
|
45
|
+
function checkSSRMode(ssr2) {
|
|
46
|
+
if (!ssr2) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
if (typeof ssr2 === "boolean") {
|
|
50
|
+
return ssr2 ? "string" : false;
|
|
51
|
+
}
|
|
52
|
+
return ssr2.mode === "stream" ? "stream" : "string";
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
const generateCode = async (entrypoints, appContext, config, onCollectRuntimePlugins) => {
|
|
56
|
+
const { mountId } = config.html;
|
|
57
|
+
const { enableAsyncEntry } = config.source;
|
|
58
|
+
const { runtimeConfigFile, internalDirectory, internalSrcAlias, metaName, srcDirectory } = appContext;
|
|
59
|
+
await Promise.all(entrypoints.map(async (entrypoint) => {
|
|
60
|
+
const { entryName, isAutoMount, entry, customEntry, customBootstrap, customServerEntry } = entrypoint;
|
|
61
|
+
const { plugins: runtimePlugins } = await onCollectRuntimePlugins({
|
|
62
|
+
entrypoint,
|
|
63
|
+
plugins: []
|
|
64
|
+
});
|
|
65
|
+
if (isAutoMount) {
|
|
66
|
+
const indexCode = template.index({
|
|
67
|
+
srcDirectory,
|
|
68
|
+
internalSrcAlias,
|
|
69
|
+
metaName,
|
|
70
|
+
entry,
|
|
71
|
+
entryName,
|
|
72
|
+
customEntry,
|
|
73
|
+
customBootstrap,
|
|
74
|
+
mountId
|
|
75
|
+
});
|
|
76
|
+
const indexFile = import_path.default.resolve(internalDirectory, `./${entryName}/${import_constants.ENTRY_POINT_FILE_NAME}`);
|
|
77
|
+
import_utils.fs.outputFileSync(indexFile, indexCode, "utf8");
|
|
78
|
+
if (enableAsyncEntry) {
|
|
79
|
+
const bootstrapFile = import_path.default.resolve(internalDirectory, `./${entryName}/${import_constants.ENTRY_BOOTSTRAP_FILE_NAME}`);
|
|
80
|
+
import_utils.fs.outputFileSync(bootstrapFile, `import('./${import_constants.INDEX_FILE_NAME}');`, "utf8");
|
|
81
|
+
}
|
|
82
|
+
const ssrMode = getSSRMode(entryName, config);
|
|
83
|
+
if (ssrMode) {
|
|
84
|
+
const indexServerCode = serverTemplate.serverIndex({
|
|
85
|
+
entry,
|
|
86
|
+
entryName,
|
|
87
|
+
internalSrcAlias,
|
|
88
|
+
metaName,
|
|
89
|
+
mode: ssrMode,
|
|
90
|
+
customServerEntry,
|
|
91
|
+
srcDirectory
|
|
92
|
+
});
|
|
93
|
+
const indexServerFile = import_path.default.resolve(internalDirectory, `./${entryName}/${import_constants.SERVER_ENTRY_POINT_FILE_NAME}`);
|
|
94
|
+
import_utils.fs.outputFileSync(indexServerFile, indexServerCode, "utf8");
|
|
95
|
+
}
|
|
96
|
+
const registerCode = template.register();
|
|
97
|
+
const registerFile = import_path.default.resolve(internalDirectory, `./${entryName}/${import_constants.ENTRY_POINT_REGISTER_FILE_NAME}`);
|
|
98
|
+
import_utils.fs.outputFileSync(registerFile, registerCode, "utf8");
|
|
99
|
+
const registerRuntimeCode = template.runtimeRegister({
|
|
100
|
+
entryName,
|
|
101
|
+
srcDirectory,
|
|
102
|
+
internalSrcAlias,
|
|
103
|
+
metaName,
|
|
104
|
+
runtimeConfigFile,
|
|
105
|
+
runtimePlugins
|
|
106
|
+
});
|
|
107
|
+
const registerRuntimeFile = import_path.default.resolve(internalDirectory, `./${entryName}/${import_constants.ENTRY_POINT_RUNTIME_REGISTER_FILE_NAME}`);
|
|
108
|
+
import_utils.fs.outputFileSync(registerRuntimeFile, registerRuntimeCode, "utf8");
|
|
109
|
+
const contextCode = template.runtimeGlobalContext({
|
|
110
|
+
srcDirectory,
|
|
111
|
+
internalSrcAlias,
|
|
112
|
+
metaName,
|
|
113
|
+
entry,
|
|
114
|
+
customEntry
|
|
115
|
+
});
|
|
116
|
+
const contextFile = import_path.default.resolve(internalDirectory, `./${entryName}/${import_constants.ENTRY_POINT_RUNTIME_GLOBAL_CONTEXT_FILE_NAME}`);
|
|
117
|
+
import_utils.fs.outputFileSync(contextFile, contextCode, "utf8");
|
|
118
|
+
}
|
|
119
|
+
}));
|
|
120
|
+
};
|
|
121
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
122
|
+
0 && (module.exports = {
|
|
123
|
+
generateCode
|
|
124
|
+
});
|
|
@@ -18,11 +18,32 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var constants_exports = {};
|
|
20
20
|
__export(constants_exports, {
|
|
21
|
-
APP_FILE_NAME: () => APP_FILE_NAME
|
|
21
|
+
APP_FILE_NAME: () => APP_FILE_NAME,
|
|
22
|
+
ENTRY_BOOTSTRAP_FILE_NAME: () => ENTRY_BOOTSTRAP_FILE_NAME,
|
|
23
|
+
ENTRY_POINT_FILE_NAME: () => ENTRY_POINT_FILE_NAME,
|
|
24
|
+
ENTRY_POINT_REGISTER_FILE_NAME: () => ENTRY_POINT_REGISTER_FILE_NAME,
|
|
25
|
+
ENTRY_POINT_RUNTIME_GLOBAL_CONTEXT_FILE_NAME: () => ENTRY_POINT_RUNTIME_GLOBAL_CONTEXT_FILE_NAME,
|
|
26
|
+
ENTRY_POINT_RUNTIME_REGISTER_FILE_NAME: () => ENTRY_POINT_RUNTIME_REGISTER_FILE_NAME,
|
|
27
|
+
INDEX_FILE_NAME: () => INDEX_FILE_NAME,
|
|
28
|
+
SERVER_ENTRY_POINT_FILE_NAME: () => SERVER_ENTRY_POINT_FILE_NAME
|
|
22
29
|
});
|
|
23
30
|
module.exports = __toCommonJS(constants_exports);
|
|
24
31
|
const APP_FILE_NAME = "App";
|
|
32
|
+
const ENTRY_POINT_FILE_NAME = "index.jsx";
|
|
33
|
+
const SERVER_ENTRY_POINT_FILE_NAME = "index.server.jsx";
|
|
34
|
+
const INDEX_FILE_NAME = "index";
|
|
35
|
+
const ENTRY_BOOTSTRAP_FILE_NAME = "bootstrap.jsx";
|
|
36
|
+
const ENTRY_POINT_RUNTIME_REGISTER_FILE_NAME = "runtime-register.js";
|
|
37
|
+
const ENTRY_POINT_RUNTIME_GLOBAL_CONTEXT_FILE_NAME = "runtime-global-context.js";
|
|
38
|
+
const ENTRY_POINT_REGISTER_FILE_NAME = "register.js";
|
|
25
39
|
// Annotate the CommonJS export names for ESM import in node:
|
|
26
40
|
0 && (module.exports = {
|
|
27
|
-
APP_FILE_NAME
|
|
41
|
+
APP_FILE_NAME,
|
|
42
|
+
ENTRY_BOOTSTRAP_FILE_NAME,
|
|
43
|
+
ENTRY_POINT_FILE_NAME,
|
|
44
|
+
ENTRY_POINT_REGISTER_FILE_NAME,
|
|
45
|
+
ENTRY_POINT_RUNTIME_GLOBAL_CONTEXT_FILE_NAME,
|
|
46
|
+
ENTRY_POINT_RUNTIME_REGISTER_FILE_NAME,
|
|
47
|
+
INDEX_FILE_NAME,
|
|
48
|
+
SERVER_ENTRY_POINT_FILE_NAME
|
|
28
49
|
});
|
package/dist/cjs/cli/index.js
CHANGED
|
@@ -29,18 +29,26 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
29
29
|
var cli_exports = {};
|
|
30
30
|
__export(cli_exports, {
|
|
31
31
|
default: () => cli_default,
|
|
32
|
+
documentPlugin: () => import_cli3.documentPlugin,
|
|
32
33
|
isRuntimeEntry: () => import_entry2.isRuntimeEntry,
|
|
33
|
-
|
|
34
|
+
routerPlugin: () => import_cli2.routerPlugin,
|
|
35
|
+
runtimePlugin: () => runtimePlugin,
|
|
36
|
+
ssrPlugin: () => import_ssr.ssrPlugin,
|
|
37
|
+
statePlugin: () => import_cli.statePlugin
|
|
34
38
|
});
|
|
35
39
|
module.exports = __toCommonJS(cli_exports);
|
|
40
|
+
var import_path = __toESM(require("path"));
|
|
36
41
|
var import_utils = require("@modern-js/utils");
|
|
37
42
|
var import_cli = require("../state/cli");
|
|
38
|
-
var import_cli2 = require("../
|
|
39
|
-
var import_cli3 = require("../
|
|
40
|
-
var
|
|
43
|
+
var import_cli2 = require("../router/cli");
|
|
44
|
+
var import_cli3 = require("../document/cli");
|
|
45
|
+
var import_ssr = require("./ssr");
|
|
41
46
|
var import_entry = require("./entry");
|
|
47
|
+
var import_constants = require("./constants");
|
|
48
|
+
var import_code = require("./code");
|
|
49
|
+
var import_alias = require("./alias");
|
|
42
50
|
var import_entry2 = require("./entry");
|
|
43
|
-
const runtimePlugin = () => ({
|
|
51
|
+
const runtimePlugin = (params) => ({
|
|
44
52
|
name: "@modern-js/runtime",
|
|
45
53
|
post: [
|
|
46
54
|
"@modern-js/plugin-ssr",
|
|
@@ -50,23 +58,58 @@ const runtimePlugin = () => ({
|
|
|
50
58
|
"@modern-js/plugin-design-token"
|
|
51
59
|
],
|
|
52
60
|
// the order of runtime plugins is affected by runtime hooks, mainly `init` and `hoc` hooks
|
|
53
|
-
usePlugins: [
|
|
54
|
-
(0,
|
|
61
|
+
usePlugins: (params === null || params === void 0 ? void 0 : params.plugins) || [
|
|
62
|
+
(0, import_ssr.ssrPlugin)(),
|
|
63
|
+
(0, import_cli2.routerPlugin)(),
|
|
55
64
|
(0, import_cli.statePlugin)(),
|
|
56
|
-
(0, import_cli3.
|
|
57
|
-
(0, import_cli4.documentPlugin)()
|
|
65
|
+
(0, import_cli3.documentPlugin)()
|
|
58
66
|
],
|
|
59
67
|
setup: (api) => {
|
|
60
68
|
return {
|
|
61
|
-
checkEntryPoint({ path, entry }) {
|
|
69
|
+
checkEntryPoint({ path: path2, entry }) {
|
|
62
70
|
return {
|
|
63
|
-
path,
|
|
64
|
-
entry: entry || (0, import_entry.isRuntimeEntry)(
|
|
71
|
+
path: path2,
|
|
72
|
+
entry: entry || (0, import_entry.isRuntimeEntry)(path2)
|
|
65
73
|
};
|
|
66
74
|
},
|
|
75
|
+
modifyEntrypoints({ entrypoints }) {
|
|
76
|
+
const { internalDirectory } = api.useAppContext();
|
|
77
|
+
const { source: { enableAsyncEntry } } = api.useResolvedConfigContext();
|
|
78
|
+
const newEntryPoints = entrypoints.map((entrypoint) => {
|
|
79
|
+
if (entrypoint.isAutoMount) {
|
|
80
|
+
entrypoint.internalEntry = import_path.default.resolve(internalDirectory, `./${entrypoint.entryName}/${enableAsyncEntry ? import_constants.ENTRY_BOOTSTRAP_FILE_NAME : import_constants.ENTRY_POINT_FILE_NAME}`);
|
|
81
|
+
}
|
|
82
|
+
return entrypoint;
|
|
83
|
+
});
|
|
84
|
+
return {
|
|
85
|
+
entrypoints: newEntryPoints
|
|
86
|
+
};
|
|
87
|
+
},
|
|
88
|
+
async generateEntryCode({ entrypoints }) {
|
|
89
|
+
const appContext = api.useAppContext();
|
|
90
|
+
const resolvedConfig = api.useResolvedConfigContext();
|
|
91
|
+
const runners = api.useHookRunners();
|
|
92
|
+
await (0, import_code.generateCode)(entrypoints, appContext, resolvedConfig, runners._internalRuntimePlugins);
|
|
93
|
+
},
|
|
94
|
+
/* Note that the execution time of the config hook is before prepare.
|
|
95
|
+
/* This means that the entry information cannot be obtained in the config hook.
|
|
96
|
+
/* Therefore, aliases cannot be set directly in the config.
|
|
97
|
+
*/
|
|
98
|
+
prepare() {
|
|
99
|
+
const { builder, entrypoints, internalDirectory, metaName } = api.useAppContext();
|
|
100
|
+
builder === null || builder === void 0 ? void 0 : builder.addPlugins([
|
|
101
|
+
(0, import_alias.builderPluginAlias)({
|
|
102
|
+
entrypoints,
|
|
103
|
+
internalDirectory,
|
|
104
|
+
metaName
|
|
105
|
+
})
|
|
106
|
+
]);
|
|
107
|
+
},
|
|
67
108
|
config() {
|
|
68
|
-
const
|
|
69
|
-
|
|
109
|
+
const { appDirectory, metaName, internalDirectory } = api.useAppContext();
|
|
110
|
+
const isReact18 = (0, import_utils.isReact18)(appDirectory);
|
|
111
|
+
process.env.IS_REACT18 = isReact18.toString();
|
|
112
|
+
const pluginsExportsUtils = (0, import_utils.createRuntimeExportsUtils)(internalDirectory, "plugins");
|
|
70
113
|
return {
|
|
71
114
|
runtime: {},
|
|
72
115
|
runtimeByEntries: {},
|
|
@@ -77,7 +120,11 @@ const runtimePlugin = () => ({
|
|
|
77
120
|
* But it will not be installed under the user project.
|
|
78
121
|
* So need to add alias
|
|
79
122
|
*/
|
|
80
|
-
"styled-components": require.resolve("styled-components")
|
|
123
|
+
"styled-components": require.resolve("styled-components"),
|
|
124
|
+
/**
|
|
125
|
+
* Compatible with the reference path of the old version of the plugin.
|
|
126
|
+
*/
|
|
127
|
+
[`@${metaName}/runtime/plugins`]: pluginsExportsUtils.getPath()
|
|
81
128
|
},
|
|
82
129
|
globalVars: {
|
|
83
130
|
"process.env.IS_REACT18": process.env.IS_REACT18
|
|
@@ -89,6 +136,29 @@ const runtimePlugin = () => ({
|
|
|
89
136
|
topLevelImportPaths: [
|
|
90
137
|
"@modern-js/runtime/styled"
|
|
91
138
|
]
|
|
139
|
+
},
|
|
140
|
+
/**
|
|
141
|
+
* Add IgnorePlugin to fix react-dom/client import error when use react17
|
|
142
|
+
*/
|
|
143
|
+
webpackChain: (chain, { webpack }) => {
|
|
144
|
+
if (!isReact18) {
|
|
145
|
+
chain.plugin("ignore-plugin").use(webpack.IgnorePlugin, [
|
|
146
|
+
{
|
|
147
|
+
resourceRegExp: /^react-dom\/client$/,
|
|
148
|
+
contextRegExp: /./
|
|
149
|
+
}
|
|
150
|
+
]);
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
rspack: (_config, { appendPlugins, rspack }) => {
|
|
154
|
+
if (!isReact18) {
|
|
155
|
+
appendPlugins([
|
|
156
|
+
new rspack.IgnorePlugin({
|
|
157
|
+
resourceRegExp: /^react-dom\/client$/,
|
|
158
|
+
contextRegExp: /./
|
|
159
|
+
})
|
|
160
|
+
]);
|
|
161
|
+
}
|
|
92
162
|
}
|
|
93
163
|
}
|
|
94
164
|
};
|
|
@@ -97,7 +167,7 @@ const runtimePlugin = () => ({
|
|
|
97
167
|
(0, import_utils.cleanRequireCache)([
|
|
98
168
|
require.resolve("../state/cli"),
|
|
99
169
|
require.resolve("../router/cli"),
|
|
100
|
-
require.resolve("
|
|
170
|
+
require.resolve("./ssr")
|
|
101
171
|
]);
|
|
102
172
|
}
|
|
103
173
|
};
|
|
@@ -106,6 +176,10 @@ const runtimePlugin = () => ({
|
|
|
106
176
|
var cli_default = runtimePlugin;
|
|
107
177
|
// Annotate the CommonJS export names for ESM import in node:
|
|
108
178
|
0 && (module.exports = {
|
|
179
|
+
documentPlugin,
|
|
109
180
|
isRuntimeEntry,
|
|
110
|
-
|
|
181
|
+
routerPlugin,
|
|
182
|
+
runtimePlugin,
|
|
183
|
+
ssrPlugin,
|
|
184
|
+
statePlugin
|
|
111
185
|
});
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var ssr_exports = {};
|
|
30
|
+
__export(ssr_exports, {
|
|
31
|
+
default: () => ssr_default,
|
|
32
|
+
ssrPlugin: () => ssrPlugin
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(ssr_exports);
|
|
35
|
+
var import_path = __toESM(require("path"));
|
|
36
|
+
var import_utils = require("@modern-js/utils");
|
|
37
|
+
const hasStringSSREntry = (userConfig) => {
|
|
38
|
+
const isStreaming = (ssr) => ssr && typeof ssr === "object" && ssr.mode === "stream";
|
|
39
|
+
const { server, output } = userConfig;
|
|
40
|
+
if (((server === null || server === void 0 ? void 0 : server.ssr) || output.ssg) && !isStreaming(server.ssr)) {
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
if ((server === null || server === void 0 ? void 0 : server.ssrByEntries) && typeof server.ssrByEntries === "object") {
|
|
44
|
+
for (const name of Object.keys(server.ssrByEntries)) {
|
|
45
|
+
if (server.ssrByEntries[name] && !isStreaming(server.ssrByEntries[name])) {
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return false;
|
|
51
|
+
};
|
|
52
|
+
const checkUseStringSSR = (config) => {
|
|
53
|
+
const { output } = config;
|
|
54
|
+
return Boolean(output === null || output === void 0 ? void 0 : output.ssg) || hasStringSSREntry(config);
|
|
55
|
+
};
|
|
56
|
+
const ssrBuilderPlugin = (modernAPI) => ({
|
|
57
|
+
name: "@modern-js/builder-plugin-ssr",
|
|
58
|
+
setup(api) {
|
|
59
|
+
api.modifyEnvironmentConfig((config, { name, mergeEnvironmentConfig }) => {
|
|
60
|
+
const isServerEnvironment = config.output.target === "node" || name === "serviceWorker";
|
|
61
|
+
const userConfig = modernAPI.useResolvedConfigContext();
|
|
62
|
+
const useLoadablePlugin = (0, import_utils.isUseSSRBundle)(userConfig) && !isServerEnvironment && checkUseStringSSR(userConfig);
|
|
63
|
+
return mergeEnvironmentConfig(config, {
|
|
64
|
+
source: {
|
|
65
|
+
define: {
|
|
66
|
+
"process.env.MODERN_TARGET": isServerEnvironment ? JSON.stringify("node") : JSON.stringify("browser")
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
tools: {
|
|
70
|
+
bundlerChain: useLoadablePlugin ? (chain) => {
|
|
71
|
+
const LoadableBundlerPlugin = require("./loadable-bundler-plugin.js");
|
|
72
|
+
chain.plugin("loadable").use(LoadableBundlerPlugin, [
|
|
73
|
+
{
|
|
74
|
+
filename: import_utils.LOADABLE_STATS_FILE
|
|
75
|
+
}
|
|
76
|
+
]);
|
|
77
|
+
} : void 0
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
const ssrPlugin = () => ({
|
|
84
|
+
name: "@modern-js/plugin-ssr",
|
|
85
|
+
required: [
|
|
86
|
+
"@modern-js/runtime"
|
|
87
|
+
],
|
|
88
|
+
setup: (api) => {
|
|
89
|
+
return {
|
|
90
|
+
// for bundle
|
|
91
|
+
config() {
|
|
92
|
+
const { bundlerType = "webpack" } = api.useAppContext();
|
|
93
|
+
const babelHandler = (() => {
|
|
94
|
+
if (bundlerType === "webpack") {
|
|
95
|
+
return (config) => {
|
|
96
|
+
var _config_plugins;
|
|
97
|
+
const userConfig = api.useResolvedConfigContext();
|
|
98
|
+
(_config_plugins = config.plugins) === null || _config_plugins === void 0 ? void 0 : _config_plugins.push(import_path.default.join(__dirname, "./babel-plugin-ssr-loader-id"));
|
|
99
|
+
if ((0, import_utils.isUseSSRBundle)(userConfig) && checkUseStringSSR(userConfig)) {
|
|
100
|
+
var _config_plugins1;
|
|
101
|
+
(_config_plugins1 = config.plugins) === null || _config_plugins1 === void 0 ? void 0 : _config_plugins1.push(require.resolve("@loadable/babel-plugin"));
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
} else if (bundlerType === "rspack") {
|
|
105
|
+
return (config) => {
|
|
106
|
+
const userConfig = api.useResolvedConfigContext();
|
|
107
|
+
if ((0, import_utils.isUseSSRBundle)(userConfig) && checkUseStringSSR(userConfig)) {
|
|
108
|
+
var _config_plugins, _config_plugins1;
|
|
109
|
+
(_config_plugins = config.plugins) === null || _config_plugins === void 0 ? void 0 : _config_plugins.push(import_path.default.join(__dirname, "./babel-plugin-ssr-loader-id"));
|
|
110
|
+
(_config_plugins1 = config.plugins) === null || _config_plugins1 === void 0 ? void 0 : _config_plugins1.push(require.resolve("@loadable/babel-plugin"));
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
})();
|
|
115
|
+
return {
|
|
116
|
+
builderPlugins: [
|
|
117
|
+
ssrBuilderPlugin(api)
|
|
118
|
+
],
|
|
119
|
+
source: {
|
|
120
|
+
alias: {
|
|
121
|
+
// ensure that all packages use the same storage in @modern-js/runtime-utils/node
|
|
122
|
+
"@modern-js/runtime-utils/node$": require.resolve("@modern-js/runtime-utils/node")
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
tools: {
|
|
126
|
+
babel: babelHandler
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
var ssr_default = ssrPlugin;
|
|
134
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
135
|
+
0 && (module.exports = {
|
|
136
|
+
ssrPlugin
|
|
137
|
+
});
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var template_exports = {};
|
|
30
|
+
__export(template_exports, {
|
|
31
|
+
index: () => index,
|
|
32
|
+
register: () => register,
|
|
33
|
+
runtimeGlobalContext: () => runtimeGlobalContext,
|
|
34
|
+
runtimeRegister: () => runtimeRegister
|
|
35
|
+
});
|
|
36
|
+
module.exports = __toCommonJS(template_exports);
|
|
37
|
+
var import_path = __toESM(require("path"));
|
|
38
|
+
var import_utils = require("@modern-js/utils");
|
|
39
|
+
var import_constants = require("./constants");
|
|
40
|
+
const genRenderCode = ({ srcDirectory, internalSrcAlias, metaName, entry, customEntry, customBootstrap, mountId }) => {
|
|
41
|
+
if (customEntry) {
|
|
42
|
+
return `import '${(0, import_utils.formatImportPath)(entry.replace(srcDirectory, internalSrcAlias))}'`;
|
|
43
|
+
}
|
|
44
|
+
return `import { createRoot } from '@${metaName}/runtime/react';
|
|
45
|
+
import { render } from '@${metaName}/runtime/browser';
|
|
46
|
+
${customBootstrap ? `import customBootstrap from '${(0, import_utils.formatImportPath)(customBootstrap.replace(srcDirectory, internalSrcAlias))}';` : ""}
|
|
47
|
+
|
|
48
|
+
const ModernRoot = createRoot();
|
|
49
|
+
|
|
50
|
+
${customBootstrap ? `customBootstrap(ModernRoot, () => render(<ModernRoot />, '${mountId || "root"}'));` : `render(<ModernRoot />, '${mountId || "root"}');`}`;
|
|
51
|
+
};
|
|
52
|
+
const index = ({ srcDirectory, internalSrcAlias, metaName, entry, entryName, customEntry, customBootstrap, mountId }) => `import '@${metaName}/runtime/registry/${entryName}';
|
|
53
|
+
${genRenderCode({
|
|
54
|
+
srcDirectory,
|
|
55
|
+
internalSrcAlias,
|
|
56
|
+
metaName,
|
|
57
|
+
entry,
|
|
58
|
+
customEntry,
|
|
59
|
+
customBootstrap,
|
|
60
|
+
mountId
|
|
61
|
+
})}
|
|
62
|
+
`;
|
|
63
|
+
const register = () => `import './${import_constants.ENTRY_POINT_RUNTIME_GLOBAL_CONTEXT_FILE_NAME}';
|
|
64
|
+
import './${import_constants.ENTRY_POINT_RUNTIME_REGISTER_FILE_NAME}';
|
|
65
|
+
`;
|
|
66
|
+
const getImportRuntimeConfigCode = (srcDirectory, internalSrcAlias, runtimeConfigFile) => {
|
|
67
|
+
if (runtimeConfigFile && (0, import_utils.findExists)(import_utils.JS_EXTENSIONS.map((ext) => import_path.default.resolve(srcDirectory, `${runtimeConfigFile}${ext}`)))) {
|
|
68
|
+
return `import runtimeConfig from '${internalSrcAlias}/${runtimeConfigFile}';`;
|
|
69
|
+
}
|
|
70
|
+
return `let runtimeConfig;`;
|
|
71
|
+
};
|
|
72
|
+
const getRegisterRuntimePluginCode = (entryName, name, config) => `plugins.push(${name}Plugin(mergeConfig(${JSON.stringify(config)}, (runtimeConfig || {})['${name}'], ((runtimeConfig || {})['${name}ByEntries'] || {})['${entryName}'], (getGlobalAppConfig() || {})['${name}'])));`;
|
|
73
|
+
const runtimeRegister = ({ entryName, srcDirectory, internalSrcAlias, metaName, runtimeConfigFile, runtimePlugins }) => `import { registerPlugin, mergeConfig } from '@${metaName}/runtime/plugin';
|
|
74
|
+
import { getGlobalAppConfig, getGlobalLayoutApp } from '@${metaName}/runtime/context';
|
|
75
|
+
${getImportRuntimeConfigCode(srcDirectory, internalSrcAlias, runtimeConfigFile)}
|
|
76
|
+
|
|
77
|
+
const plugins = [];
|
|
78
|
+
|
|
79
|
+
${runtimePlugins.map(({ name, path: path2, config }) => `import { ${name}Plugin } from '${path2}';
|
|
80
|
+
|
|
81
|
+
${getRegisterRuntimePluginCode(entryName, name, config)}
|
|
82
|
+
`).join("\n")}
|
|
83
|
+
registerPlugin(plugins, runtimeConfig);
|
|
84
|
+
`;
|
|
85
|
+
const runtimeGlobalContext = ({ srcDirectory, internalSrcAlias, metaName, entry, customEntry }) => {
|
|
86
|
+
return `import { setGlobalContext } from '@${metaName}/runtime/context'
|
|
87
|
+
|
|
88
|
+
import App from '${// We need to get the path of App.tsx here, but the entry is `src/entry.tsx`
|
|
89
|
+
(0, import_utils.formatImportPath)(customEntry ? entry.replace("entry.tsx", "App.tsx").replace(srcDirectory, internalSrcAlias) : entry.replace(srcDirectory, internalSrcAlias))}';
|
|
90
|
+
|
|
91
|
+
setGlobalContext({
|
|
92
|
+
App,
|
|
93
|
+
});`;
|
|
94
|
+
};
|
|
95
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
96
|
+
0 && (module.exports = {
|
|
97
|
+
index,
|
|
98
|
+
register,
|
|
99
|
+
runtimeGlobalContext,
|
|
100
|
+
runtimeRegister
|
|
101
|
+
});
|