@modern-js/app-tools 2.0.0-beta.3 → 2.0.0-beta.6
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/CHANGELOG.md +619 -0
- package/bin/modern.js +3 -0
- package/dist/js/modern/analyze/Builder.js +39 -0
- package/dist/js/modern/analyze/constants.js +48 -18
- package/dist/js/modern/analyze/generateCode.js +264 -225
- package/dist/js/modern/analyze/getBundleEntry.js +34 -32
- package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +99 -52
- package/dist/js/modern/analyze/getClientRoutes/getRoutesLegacy.js +89 -47
- package/dist/js/modern/analyze/getClientRoutes/index.js +6 -2
- package/dist/js/modern/analyze/getClientRoutes/utils.js +23 -10
- package/dist/js/modern/analyze/getFileSystemEntry.js +52 -23
- package/dist/js/modern/analyze/getHtmlTemplate.js +89 -49
- package/dist/js/modern/analyze/getServerRoutes.js +122 -126
- package/dist/js/modern/analyze/index.js +204 -161
- package/dist/js/modern/analyze/isDefaultExportFunction.js +30 -16
- package/dist/js/modern/analyze/makeLegalIdentifier.js +10 -11
- package/dist/js/modern/analyze/nestedRoutes.js +118 -65
- package/dist/js/modern/analyze/templates.js +170 -81
- package/dist/js/modern/analyze/utils.js +104 -67
- package/dist/js/modern/builder/builderPlugins/compatModern.js +128 -109
- package/dist/js/modern/builder/index.js +120 -89
- package/dist/js/modern/builder/loaders/routerLoader.js +9 -12
- package/dist/js/modern/builder/loaders/serverModuleLoader.js +4 -1
- package/dist/js/modern/builder/share.js +23 -21
- package/dist/js/modern/builder/webpackPlugins/htmlAsyncChunkPlugin.js +23 -22
- package/dist/js/modern/builder/webpackPlugins/htmlBottomTemplate.js +31 -27
- package/dist/js/modern/builder/webpackPlugins/routerPlugin.js +100 -84
- package/dist/js/modern/commands/build.js +67 -42
- package/dist/js/modern/commands/deploy.js +27 -4
- package/dist/js/modern/commands/dev.js +81 -34
- package/dist/js/modern/commands/index.js +1 -1
- package/dist/js/modern/commands/inspect.js +30 -5
- package/dist/js/modern/commands/serve.js +54 -0
- package/dist/js/modern/config/default.js +112 -145
- package/dist/js/modern/config/index.js +8 -2
- package/dist/js/modern/config/initial/createHtmlConfig.js +5 -2
- package/dist/js/modern/config/initial/createOutputConfig.js +10 -13
- package/dist/js/modern/config/initial/createSourceConfig.js +10 -3
- package/dist/js/modern/config/initial/createToolsConfig.js +7 -6
- package/dist/js/modern/config/initial/index.js +9 -4
- package/dist/js/modern/config/initial/inits.js +109 -73
- package/dist/js/modern/config/initial/transformNormalizedConfig.js +11 -4
- package/dist/js/modern/defineConfig.js +26 -11
- package/dist/js/modern/exports/server.js +4 -1
- package/dist/js/modern/hooks.js +16 -4
- package/dist/js/modern/index.js +178 -90
- package/dist/js/modern/initialize/index.js +100 -52
- package/dist/js/modern/locale/en.js +20 -21
- package/dist/js/modern/locale/index.js +6 -6
- package/dist/js/modern/locale/zh.js +21 -22
- package/dist/js/modern/schema/Schema.js +6 -5
- package/dist/js/modern/schema/index.js +53 -100
- package/dist/js/modern/schema/legacy.js +96 -231
- package/dist/js/modern/types/config/index.js +0 -1
- package/dist/js/modern/types/index.js +0 -1
- package/dist/js/modern/types/legacyConfig/output.js +0 -1
- package/dist/js/modern/utils/commands.js +10 -2
- package/dist/js/modern/utils/config.js +102 -41
- package/dist/js/modern/utils/createFileWatcher.js +84 -51
- package/dist/js/modern/utils/createServer.js +63 -17
- package/dist/js/modern/utils/getServerInternalPlugins.js +58 -0
- package/dist/js/modern/utils/getSpecifiedEntries.js +46 -19
- package/dist/js/modern/utils/language.js +6 -3
- package/dist/js/modern/utils/printInstructions.js +27 -8
- package/dist/js/modern/utils/restart.js +43 -16
- package/dist/js/modern/utils/routes.js +29 -12
- package/dist/js/node/analyze/Builder.js +64 -0
- package/dist/js/node/analyze/constants.js +86 -39
- package/dist/js/node/analyze/generateCode.js +285 -239
- package/dist/js/node/analyze/getBundleEntry.js +62 -44
- package/dist/js/node/analyze/getClientRoutes/getRoutes.js +138 -77
- package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +130 -74
- package/dist/js/node/analyze/getClientRoutes/index.js +27 -16
- package/dist/js/node/analyze/getClientRoutes/utils.js +51 -21
- package/dist/js/node/analyze/getFileSystemEntry.js +82 -39
- package/dist/js/node/analyze/getHtmlTemplate.js +120 -61
- package/dist/js/node/analyze/getServerRoutes.js +145 -137
- package/dist/js/node/analyze/index.js +233 -174
- package/dist/js/node/analyze/isDefaultExportFunction.js +59 -26
- package/dist/js/node/analyze/makeLegalIdentifier.js +31 -15
- package/dist/js/node/analyze/nestedRoutes.js +150 -79
- package/dist/js/node/analyze/templates.js +198 -90
- package/dist/js/node/analyze/utils.js +136 -81
- package/dist/js/node/builder/builderPlugins/compatModern.js +158 -122
- package/dist/js/node/builder/index.js +142 -98
- package/dist/js/node/builder/loaders/routerLoader.js +29 -18
- package/dist/js/node/builder/loaders/serverModuleLoader.js +24 -7
- package/dist/js/node/builder/share.js +50 -26
- package/dist/js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js +43 -26
- package/dist/js/node/builder/webpackPlugins/htmlBottomTemplate.js +51 -31
- package/dist/js/node/builder/webpackPlugins/routerPlugin.js +120 -90
- package/dist/js/node/commands/build.js +91 -52
- package/dist/js/node/commands/deploy.js +49 -10
- package/dist/js/node/commands/dev.js +105 -48
- package/dist/js/node/commands/index.js +19 -38
- package/dist/js/node/commands/inspect.js +52 -11
- package/dist/js/node/commands/serve.js +83 -0
- package/dist/js/node/config/default.js +131 -149
- package/dist/js/node/config/index.js +31 -28
- package/dist/js/node/config/initial/createHtmlConfig.js +26 -6
- package/dist/js/node/config/initial/createOutputConfig.js +31 -17
- package/dist/js/node/config/initial/createSourceConfig.js +31 -7
- package/dist/js/node/config/initial/createToolsConfig.js +28 -10
- package/dist/js/node/config/initial/index.js +34 -17
- package/dist/js/node/config/initial/inits.js +130 -81
- package/dist/js/node/config/initial/transformNormalizedConfig.js +40 -16
- package/dist/js/node/defineConfig.js +46 -17
- package/dist/js/node/exports/server.js +25 -10
- package/dist/js/node/hooks.js +53 -29
- package/dist/js/node/index.js +213 -129
- package/dist/js/node/initialize/index.js +117 -61
- package/dist/js/node/locale/en.js +40 -25
- package/dist/js/node/locale/index.js +31 -14
- package/dist/js/node/locale/zh.js +41 -26
- package/dist/js/node/schema/Schema.js +27 -10
- package/dist/js/node/schema/index.js +84 -114
- package/dist/js/node/schema/legacy.js +119 -240
- package/dist/js/node/types/config/deploy.js +15 -0
- package/dist/js/node/types/config/dev.js +15 -0
- package/dist/js/node/types/config/experiments.js +15 -0
- package/dist/js/node/types/config/html.js +15 -0
- package/dist/js/node/types/config/index.js +17 -16
- package/dist/js/node/types/config/output.js +15 -0
- package/dist/js/node/types/config/performance.js +15 -0
- package/dist/js/node/types/config/security.js +15 -0
- package/dist/js/node/types/config/source.js +15 -0
- package/dist/js/node/types/config/tools.js +15 -0
- package/dist/js/node/types/hooks.js +15 -0
- package/dist/js/node/types/index.js +19 -38
- package/dist/js/node/types/legacyConfig/deploy.js +15 -0
- package/dist/js/node/types/legacyConfig/dev.js +15 -0
- package/dist/js/node/types/legacyConfig/index.js +15 -0
- package/dist/js/node/types/legacyConfig/output.js +15 -5
- package/dist/js/node/types/legacyConfig/source.js +15 -0
- package/dist/js/node/types/legacyConfig/tools.js +15 -0
- package/dist/js/node/utils/commands.js +31 -6
- package/dist/js/node/utils/config.js +125 -51
- package/dist/js/node/utils/createFileWatcher.js +109 -61
- package/dist/js/node/utils/createServer.js +92 -25
- package/dist/js/node/utils/getServerInternalPlugins.js +79 -0
- package/dist/js/node/utils/getSpecifiedEntries.js +68 -25
- package/dist/js/node/utils/language.js +28 -8
- package/dist/js/node/utils/printInstructions.js +51 -16
- package/dist/js/node/utils/restart.js +65 -21
- package/dist/js/node/utils/routes.js +58 -19
- package/dist/js/node/utils/types.js +15 -0
- package/dist/js/treeshaking/analyze/Builder.js +199 -0
- package/dist/js/treeshaking/analyze/constants.js +37 -18
- package/dist/js/treeshaking/analyze/generateCode.js +597 -407
- package/dist/js/treeshaking/analyze/getBundleEntry.js +55 -63
- package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +217 -168
- package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +215 -169
- package/dist/js/treeshaking/analyze/getClientRoutes/index.js +3 -2
- package/dist/js/treeshaking/analyze/getClientRoutes/utils.js +19 -20
- package/dist/js/treeshaking/analyze/getFileSystemEntry.js +97 -86
- package/dist/js/treeshaking/analyze/getHtmlTemplate.js +298 -125
- package/dist/js/treeshaking/analyze/getServerRoutes.js +210 -147
- package/dist/js/treeshaking/analyze/index.js +575 -305
- package/dist/js/treeshaking/analyze/isDefaultExportFunction.js +45 -26
- package/dist/js/treeshaking/analyze/makeLegalIdentifier.js +13 -16
- package/dist/js/treeshaking/analyze/nestedRoutes.js +419 -201
- package/dist/js/treeshaking/analyze/templates.js +438 -236
- package/dist/js/treeshaking/analyze/utils.js +367 -153
- package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +285 -199
- package/dist/js/treeshaking/builder/index.js +365 -165
- package/dist/js/treeshaking/builder/loaders/routerLoader.js +11 -12
- package/dist/js/treeshaking/builder/loaders/serverModuleLoader.js +3 -2
- package/dist/js/treeshaking/builder/share.js +38 -44
- package/dist/js/treeshaking/builder/webpackPlugins/htmlAsyncChunkPlugin.js +108 -44
- package/dist/js/treeshaking/builder/webpackPlugins/htmlBottomTemplate.js +70 -39
- package/dist/js/treeshaking/builder/webpackPlugins/routerPlugin.js +334 -112
- package/dist/js/treeshaking/commands/build.js +286 -88
- package/dist/js/treeshaking/commands/deploy.js +153 -25
- package/dist/js/treeshaking/commands/dev.js +313 -131
- package/dist/js/treeshaking/commands/index.js +1 -1
- package/dist/js/treeshaking/commands/inspect.js +147 -32
- package/dist/js/treeshaking/commands/serve.js +199 -0
- package/dist/js/treeshaking/config/default.js +207 -198
- package/dist/js/treeshaking/config/index.js +3 -2
- package/dist/js/treeshaking/config/initial/createHtmlConfig.js +19 -31
- package/dist/js/treeshaking/config/initial/createOutputConfig.js +41 -70
- package/dist/js/treeshaking/config/initial/createSourceConfig.js +41 -40
- package/dist/js/treeshaking/config/initial/createToolsConfig.js +23 -38
- package/dist/js/treeshaking/config/initial/index.js +10 -9
- package/dist/js/treeshaking/config/initial/inits.js +205 -106
- package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +31 -34
- package/dist/js/treeshaking/defineConfig.js +60 -13
- package/dist/js/treeshaking/exports/server.js +2 -1
- package/dist/js/treeshaking/hooks.js +31 -25
- package/dist/js/treeshaking/index.js +681 -256
- package/dist/js/treeshaking/initialize/index.js +292 -113
- package/dist/js/treeshaking/locale/en.js +34 -33
- package/dist/js/treeshaking/locale/index.js +5 -5
- package/dist/js/treeshaking/locale/zh.js +34 -33
- package/dist/js/treeshaking/schema/Schema.js +267 -69
- package/dist/js/treeshaking/schema/index.js +171 -121
- package/dist/js/treeshaking/schema/legacy.js +323 -256
- package/dist/js/treeshaking/types/config/deploy.js +1 -0
- package/dist/js/treeshaking/types/config/dev.js +1 -0
- package/dist/js/treeshaking/types/config/experiments.js +1 -0
- package/dist/js/treeshaking/types/config/html.js +1 -0
- package/dist/js/treeshaking/types/config/index.js +0 -1
- package/dist/js/treeshaking/types/config/output.js +1 -0
- package/dist/js/treeshaking/types/config/performance.js +1 -0
- package/dist/js/treeshaking/types/config/security.js +1 -0
- package/dist/js/treeshaking/types/config/source.js +1 -0
- package/dist/js/treeshaking/types/config/tools.js +1 -0
- package/dist/js/treeshaking/types/hooks.js +1 -0
- package/dist/js/treeshaking/types/index.js +0 -1
- package/dist/js/treeshaking/types/legacyConfig/deploy.js +1 -0
- package/dist/js/treeshaking/types/legacyConfig/dev.js +1 -0
- package/dist/js/treeshaking/types/legacyConfig/index.js +1 -0
- package/dist/js/treeshaking/types/legacyConfig/output.js +1 -1
- package/dist/js/treeshaking/types/legacyConfig/source.js +1 -0
- package/dist/js/treeshaking/types/legacyConfig/tools.js +1 -0
- package/dist/js/treeshaking/utils/commands.js +10 -5
- package/dist/js/treeshaking/utils/config.js +295 -117
- package/dist/js/treeshaking/utils/createFileWatcher.js +278 -118
- package/dist/js/treeshaking/utils/createServer.js +252 -67
- package/dist/js/treeshaking/utils/getServerInternalPlugins.js +210 -0
- package/dist/js/treeshaking/utils/getSpecifiedEntries.js +182 -55
- package/dist/js/treeshaking/utils/language.js +6 -5
- package/dist/js/treeshaking/utils/printInstructions.js +151 -29
- package/dist/js/treeshaking/utils/restart.js +184 -42
- package/dist/js/treeshaking/utils/routes.js +151 -27
- package/dist/js/treeshaking/utils/types.js +1 -0
- package/dist/types/analyze/Builder.d.ts +8 -0
- package/dist/types/analyze/constants.d.ts +10 -1
- package/dist/types/analyze/index.d.ts +2 -0
- package/dist/types/analyze/templates.d.ts +3 -1
- package/dist/types/analyze/utils.d.ts +2 -1
- package/dist/types/builder/builderPlugins/compatModern.d.ts +2 -1
- package/dist/types/builder/index.d.ts +3 -3
- package/dist/types/builder/webpackPlugins/routerPlugin.d.ts +1 -7
- package/dist/types/commands/index.d.ts +1 -1
- package/dist/types/commands/{start.d.ts → serve.d.ts} +0 -0
- package/dist/types/defineConfig.d.ts +1 -0
- package/dist/types/index.d.ts +7 -1
- package/dist/types/initialize/index.d.ts +2 -0
- package/dist/types/locale/en.d.ts +1 -1
- package/dist/types/locale/index.d.ts +2 -2
- package/dist/types/locale/zh.d.ts +1 -1
- package/dist/types/types/config/dev.d.ts +2 -2
- package/dist/types/types/config/index.d.ts +4 -0
- package/dist/types/types/config/output.d.ts +0 -1
- package/dist/types/types/config/source.d.ts +2 -0
- package/dist/types/types/config/tools.d.ts +2 -0
- package/dist/types/types/hooks.d.ts +8 -0
- package/dist/types/types/legacyConfig/dev.d.ts +1 -0
- package/dist/types/types/legacyConfig/output.d.ts +1 -1
- package/dist/types/types/legacyConfig/source.d.ts +1 -0
- package/dist/types/types/legacyConfig/tools.d.ts +1 -0
- package/dist/types/utils/commands.d.ts +2 -1
- package/dist/types/utils/config.d.ts +1 -0
- package/dist/types/utils/createServer.d.ts +1 -0
- package/dist/types/utils/getServerInternalPlugins.d.ts +2 -0
- package/dist/types/utils/restart.d.ts +1 -1
- package/package.json +26 -22
- package/dist/js/modern/commands/start.js +0 -30
- package/dist/js/node/commands/start.js +0 -38
- package/dist/js/treeshaking/commands/start.js +0 -69
|
@@ -1,25 +1,71 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
21
|
+
mod
|
|
22
|
+
));
|
|
23
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
24
|
+
var __async = (__this, __arguments, generator) => {
|
|
25
|
+
return new Promise((resolve, reject) => {
|
|
26
|
+
var fulfilled = (value) => {
|
|
27
|
+
try {
|
|
28
|
+
step(generator.next(value));
|
|
29
|
+
} catch (e) {
|
|
30
|
+
reject(e);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
var rejected = (value) => {
|
|
34
|
+
try {
|
|
35
|
+
step(generator.throw(value));
|
|
36
|
+
} catch (e) {
|
|
37
|
+
reject(e);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
41
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
var utils_exports = {};
|
|
45
|
+
__export(utils_exports, {
|
|
46
|
+
getDefaultImports: () => getDefaultImports,
|
|
47
|
+
hasLoader: () => hasLoader,
|
|
48
|
+
isNestedRouteComponent: () => isNestedRouteComponent,
|
|
49
|
+
isPageComponentFile: () => isPageComponentFile,
|
|
50
|
+
parseModule: () => parseModule,
|
|
51
|
+
replaceWithAlias: () => replaceWithAlias,
|
|
52
|
+
walkDirectory: () => walkDirectory
|
|
5
53
|
});
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
if (_fs.default.statSync(filePath).isDirectory()) {
|
|
54
|
+
module.exports = __toCommonJS(utils_exports);
|
|
55
|
+
var import_fs = __toESM(require("fs"));
|
|
56
|
+
var import_path = __toESM(require("path"));
|
|
57
|
+
var import_utils = require("@modern-js/utils");
|
|
58
|
+
var import_esbuild = require("esbuild");
|
|
59
|
+
var import_es_module_lexer = require("es-module-lexer");
|
|
60
|
+
var import_constants = require("./constants");
|
|
61
|
+
const walkDirectory = (dir) => import_fs.default.readdirSync(dir).reduce((previous, filename) => {
|
|
62
|
+
const filePath = import_path.default.join(dir, filename);
|
|
63
|
+
if (import_fs.default.statSync(filePath).isDirectory()) {
|
|
17
64
|
return [...previous, ...walkDirectory(filePath)];
|
|
18
65
|
} else {
|
|
19
66
|
return [...previous, filePath];
|
|
20
67
|
}
|
|
21
68
|
}, []);
|
|
22
|
-
exports.walkDirectory = walkDirectory;
|
|
23
69
|
const getDefaultImports = ({
|
|
24
70
|
entrypoint,
|
|
25
71
|
srcDirectory,
|
|
@@ -27,99 +73,108 @@ const getDefaultImports = ({
|
|
|
27
73
|
internalDirAlias,
|
|
28
74
|
internalDirectory
|
|
29
75
|
}) => {
|
|
30
|
-
const {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
}],
|
|
52
|
-
value: '@modern-js/runtime'
|
|
53
|
-
}, customBootstrap && {
|
|
54
|
-
specifiers: [{
|
|
55
|
-
local: 'customBootstrap'
|
|
56
|
-
}],
|
|
57
|
-
value: (0, _utils.normalizeToPosixPath)(customBootstrap.replace(srcDirectory, internalSrcAlias))
|
|
58
|
-
}].filter(Boolean);
|
|
76
|
+
const { entryName, fileSystemRoutes, customBootstrap, entry } = entrypoint;
|
|
77
|
+
const imports = [
|
|
78
|
+
{
|
|
79
|
+
specifiers: [{ local: "React" }],
|
|
80
|
+
value: "react"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
specifiers: [{ local: "ReactDOM" }],
|
|
84
|
+
value: (0, import_utils.isReact18)(import_path.default.join(internalDirectory, "../../")) ? "react-dom/client" : "react-dom"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
specifiers: [{ imported: "createApp" }, { imported: "bootstrap" }],
|
|
88
|
+
value: "@modern-js/runtime"
|
|
89
|
+
},
|
|
90
|
+
customBootstrap && {
|
|
91
|
+
specifiers: [{ local: "customBootstrap" }],
|
|
92
|
+
value: (0, import_utils.normalizeToPosixPath)(
|
|
93
|
+
customBootstrap.replace(srcDirectory, internalSrcAlias)
|
|
94
|
+
)
|
|
95
|
+
}
|
|
96
|
+
].filter(Boolean);
|
|
59
97
|
if (fileSystemRoutes) {
|
|
60
98
|
const route = {
|
|
61
|
-
specifiers: [{
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
99
|
+
specifiers: [{ imported: "routes" }],
|
|
100
|
+
value: (0, import_utils.normalizeToPosixPath)(
|
|
101
|
+
`${internalDirAlias}/${entryName}/${import_constants.FILE_SYSTEM_ROUTES_FILE_NAME.replace(
|
|
102
|
+
".js",
|
|
103
|
+
""
|
|
104
|
+
)}`
|
|
105
|
+
)
|
|
65
106
|
};
|
|
66
107
|
if (fileSystemRoutes.globalApp) {
|
|
67
108
|
imports.push({
|
|
68
|
-
specifiers: [{
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
109
|
+
specifiers: [{ local: "App" }],
|
|
110
|
+
value: (0, import_utils.normalizeToPosixPath)(
|
|
111
|
+
fileSystemRoutes.globalApp.replace(srcDirectory, internalSrcAlias)
|
|
112
|
+
)
|
|
72
113
|
});
|
|
73
114
|
} else {
|
|
74
|
-
route.initialize =
|
|
115
|
+
route.initialize = "const App = false;";
|
|
75
116
|
}
|
|
76
117
|
imports.push(route);
|
|
77
118
|
} else {
|
|
78
119
|
imports.push({
|
|
79
|
-
specifiers: [{
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
120
|
+
specifiers: [{ local: "App" }],
|
|
121
|
+
value: (0, import_utils.normalizeToPosixPath)(
|
|
122
|
+
entry.replace(srcDirectory, internalSrcAlias)
|
|
123
|
+
)
|
|
83
124
|
});
|
|
84
125
|
}
|
|
85
126
|
return imports;
|
|
86
127
|
};
|
|
87
|
-
|
|
88
|
-
const isRouteComponentFile = filePath => {
|
|
128
|
+
const isPageComponentFile = (filePath) => {
|
|
89
129
|
if (/\.(d|test|spec|e2e)\.(js|jsx|ts|tsx)$/.test(filePath)) {
|
|
90
130
|
return false;
|
|
91
131
|
}
|
|
92
|
-
if ([
|
|
132
|
+
if ([".js", ".jsx", ".ts", ".tsx"].includes(import_path.default.extname(filePath))) {
|
|
93
133
|
return true;
|
|
94
134
|
}
|
|
95
135
|
return false;
|
|
96
136
|
};
|
|
97
|
-
|
|
98
|
-
const
|
|
99
|
-
|
|
100
|
-
|
|
137
|
+
const isNestedRouteComponent = (nestedRouteEntries, absoluteFilePath) => {
|
|
138
|
+
const reg = new RegExp(
|
|
139
|
+
`(${import_constants.NESTED_ROUTE.LAYOUT_FILE}|${import_constants.NESTED_ROUTE.PAGE_FILE}})\\.tsx?$`
|
|
140
|
+
);
|
|
141
|
+
return nestedRouteEntries.some((nestedRoutesEntry) => {
|
|
142
|
+
if (absoluteFilePath.includes(nestedRoutesEntry) && reg.test(absoluteFilePath)) {
|
|
143
|
+
return true;
|
|
144
|
+
}
|
|
145
|
+
return false;
|
|
146
|
+
});
|
|
147
|
+
};
|
|
148
|
+
const replaceWithAlias = (base, filePath, alias) => (0, import_utils.normalizeToPosixPath)(import_path.default.join(alias, import_path.default.relative(base, filePath)));
|
|
149
|
+
const parseModule = (_0) => __async(void 0, [_0], function* ({
|
|
101
150
|
source,
|
|
102
151
|
filename
|
|
103
|
-
})
|
|
152
|
+
}) {
|
|
104
153
|
let content = source;
|
|
105
|
-
if (filename.endsWith(
|
|
106
|
-
const result =
|
|
107
|
-
loader:
|
|
108
|
-
format:
|
|
154
|
+
if (filename.endsWith(".tsx") || filename.endsWith(".jsx")) {
|
|
155
|
+
const result = yield (0, import_esbuild.transform)(content, {
|
|
156
|
+
loader: import_path.default.extname(filename).slice(1),
|
|
157
|
+
format: "esm"
|
|
109
158
|
});
|
|
110
159
|
content = result.code;
|
|
111
160
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
const hasLoader = async filename => {
|
|
118
|
-
const source = await _utils.fs.readFile(filename);
|
|
119
|
-
const [, moduleExports] = await parseModule({
|
|
161
|
+
return yield (0, import_es_module_lexer.parse)(content);
|
|
162
|
+
});
|
|
163
|
+
const hasLoader = (filename) => __async(void 0, null, function* () {
|
|
164
|
+
const source = yield import_utils.fs.readFile(filename);
|
|
165
|
+
const [, moduleExports] = yield parseModule({
|
|
120
166
|
source: source.toString(),
|
|
121
167
|
filename
|
|
122
168
|
});
|
|
123
|
-
return moduleExports.some(e => e.n ===
|
|
124
|
-
};
|
|
125
|
-
|
|
169
|
+
return moduleExports.some((e) => e.n === import_constants.LOADER_EXPORT_NAME);
|
|
170
|
+
});
|
|
171
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
172
|
+
0 && (module.exports = {
|
|
173
|
+
getDefaultImports,
|
|
174
|
+
hasLoader,
|
|
175
|
+
isNestedRouteComponent,
|
|
176
|
+
isPageComponentFile,
|
|
177
|
+
parseModule,
|
|
178
|
+
replaceWithAlias,
|
|
179
|
+
walkDirectory
|
|
180
|
+
});
|
|
@@ -1,56 +1,82 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defProps = Object.defineProperties;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
11
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
|
+
var __spreadValues = (a, b) => {
|
|
13
|
+
for (var prop in b || (b = {}))
|
|
14
|
+
if (__hasOwnProp.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
if (__getOwnPropSymbols)
|
|
17
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
18
|
+
if (__propIsEnum.call(b, prop))
|
|
19
|
+
__defNormalProp(a, prop, b[prop]);
|
|
20
|
+
}
|
|
21
|
+
return a;
|
|
22
|
+
};
|
|
23
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
24
|
+
var __export = (target, all) => {
|
|
25
|
+
for (var name in all)
|
|
26
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
27
|
+
};
|
|
28
|
+
var __copyProps = (to, from, except, desc) => {
|
|
29
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
30
|
+
for (let key of __getOwnPropNames(from))
|
|
31
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
32
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
33
|
+
}
|
|
34
|
+
return to;
|
|
35
|
+
};
|
|
36
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
37
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
38
|
+
mod
|
|
39
|
+
));
|
|
40
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
41
|
+
var compatModern_exports = {};
|
|
42
|
+
__export(compatModern_exports, {
|
|
43
|
+
PluginCompatModern: () => PluginCompatModern
|
|
5
44
|
});
|
|
6
|
-
exports
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var
|
|
16
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
18
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
19
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
20
|
-
/**
|
|
21
|
-
* Provides default configuration consistent with `@modern-js/webpack`
|
|
22
|
-
*/
|
|
45
|
+
module.exports = __toCommonJS(compatModern_exports);
|
|
46
|
+
var import_path = require("path");
|
|
47
|
+
var import_builder_shared = require("@modern-js/builder-shared");
|
|
48
|
+
var import_lodash = require("@modern-js/utils/lodash");
|
|
49
|
+
var import_html_webpack_plugin = __toESM(require("@modern-js/builder-webpack-provider/html-webpack-plugin"));
|
|
50
|
+
var import_utils = require("@modern-js/utils");
|
|
51
|
+
var import_htmlBottomTemplate = require("../webpackPlugins/htmlBottomTemplate");
|
|
52
|
+
var import_htmlAsyncChunkPlugin = require("../webpackPlugins/htmlAsyncChunkPlugin");
|
|
53
|
+
var import_share = require("../share");
|
|
54
|
+
var import_routerPlugin = __toESM(require("../webpackPlugins/routerPlugin"));
|
|
23
55
|
const PluginCompatModern = (appContext, modernConfig, options) => ({
|
|
24
|
-
name:
|
|
56
|
+
name: "builder-plugin-compat-modern",
|
|
25
57
|
setup(api) {
|
|
26
|
-
api.modifyBuilderConfig(config => {
|
|
58
|
+
api.modifyBuilderConfig((config) => {
|
|
27
59
|
if (isStreamingSSR(modernConfig)) {
|
|
28
|
-
return (0,
|
|
60
|
+
return (0, import_builder_shared.mergeBuilderConfig)(config, {
|
|
29
61
|
html: {
|
|
30
|
-
inject:
|
|
62
|
+
inject: "body"
|
|
31
63
|
}
|
|
32
64
|
});
|
|
33
65
|
}
|
|
34
66
|
return config;
|
|
35
67
|
});
|
|
36
|
-
api.modifyWebpackChain((chain, {
|
|
37
|
-
|
|
38
|
-
CHAIN_ID,
|
|
39
|
-
isProd
|
|
40
|
-
}) => {
|
|
68
|
+
api.modifyWebpackChain((chain, { target, CHAIN_ID, isProd }) => {
|
|
69
|
+
var _a;
|
|
41
70
|
const builderNormalizedConfig = api.getNormalizedConfig();
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
chain.name('modern');
|
|
71
|
+
if (target === "node") {
|
|
72
|
+
chain.name("server");
|
|
73
|
+
} else if (target === "modern-web") {
|
|
74
|
+
chain.name("modern");
|
|
47
75
|
} else {
|
|
48
|
-
chain.name(
|
|
76
|
+
chain.name("client");
|
|
49
77
|
}
|
|
50
|
-
chain.resolve.modules.add(
|
|
51
|
-
|
|
52
|
-
// apply node compat
|
|
53
|
-
if (target === 'node') {
|
|
78
|
+
chain.resolve.modules.add("node_modules").add((0, import_path.join)(api.context.rootPath, "node_modules"));
|
|
79
|
+
if (target === "node") {
|
|
54
80
|
applyNodeCompat(chain, modernConfig, isProd);
|
|
55
81
|
}
|
|
56
82
|
if (isHtmlEnabled(builderNormalizedConfig, target)) {
|
|
@@ -67,32 +93,39 @@ const PluginCompatModern = (appContext, modernConfig, options) => ({
|
|
|
67
93
|
modernConfig
|
|
68
94
|
});
|
|
69
95
|
}
|
|
70
|
-
|
|
71
|
-
// apply copy plugin
|
|
72
96
|
if (chain.plugins.has(CHAIN_ID.PLUGIN.COPY)) {
|
|
73
|
-
const defaultCopyPattern = (0,
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
97
|
+
const defaultCopyPattern = (0, import_share.createCopyPattern)(
|
|
98
|
+
appContext,
|
|
99
|
+
modernConfig,
|
|
100
|
+
"public",
|
|
101
|
+
chain
|
|
102
|
+
);
|
|
103
|
+
chain.plugin(CHAIN_ID.PLUGIN.COPY).tap((args) => {
|
|
104
|
+
var _a2;
|
|
105
|
+
return [
|
|
106
|
+
{
|
|
107
|
+
patterns: [...((_a2 = args[0]) == null ? void 0 : _a2.patterns) || [], defaultCopyPattern]
|
|
108
|
+
}
|
|
109
|
+
];
|
|
79
110
|
});
|
|
80
111
|
}
|
|
81
|
-
const {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
112
|
+
const { entrypoints } = appContext;
|
|
113
|
+
const existNestedRoutes = entrypoints.some(
|
|
114
|
+
(entrypoint) => entrypoint.nestedRoutesEntry
|
|
115
|
+
);
|
|
116
|
+
const routerConfig = (_a = modernConfig == null ? void 0 : modernConfig.runtime) == null ? void 0 : _a.router;
|
|
117
|
+
const routerManifest = Boolean(routerConfig == null ? void 0 : routerConfig.manifest);
|
|
118
|
+
if (existNestedRoutes || routerManifest) {
|
|
119
|
+
chain.plugin("route-plugin").use(import_routerPlugin.default);
|
|
120
|
+
}
|
|
121
|
+
if (target !== "node") {
|
|
89
122
|
const bareServerModuleReg = /\.(server|node)\.[tj]sx?$/;
|
|
90
123
|
chain.module.rule(CHAIN_ID.RULE.JS).exclude.add(bareServerModuleReg);
|
|
91
|
-
chain.module.rule(
|
|
124
|
+
chain.module.rule("bare-server-module").test(bareServerModuleReg).use("server-module-loader").loader(require.resolve("../loaders/serverModuleLoader"));
|
|
92
125
|
}
|
|
93
|
-
function isHtmlEnabled(config,
|
|
94
|
-
var
|
|
95
|
-
return ((
|
|
126
|
+
function isHtmlEnabled(config, target2) {
|
|
127
|
+
var _a2;
|
|
128
|
+
return ((_a2 = config.tools) == null ? void 0 : _a2.htmlPlugin) !== false && target2 !== "node" && target2 !== "web-worker";
|
|
96
129
|
}
|
|
97
130
|
});
|
|
98
131
|
if (options) {
|
|
@@ -100,11 +133,6 @@ const PluginCompatModern = (appContext, modernConfig, options) => ({
|
|
|
100
133
|
}
|
|
101
134
|
}
|
|
102
135
|
});
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* register builder hooks callback
|
|
106
|
-
*/
|
|
107
|
-
exports.PluginCompatModern = PluginCompatModern;
|
|
108
136
|
function applyCallbacks(api, options) {
|
|
109
137
|
options.onAfterBuild && api.onAfterBuild(options.onAfterBuild);
|
|
110
138
|
options.onAfterCreateCompiler && api.onAfterCreateCompiler(options.onAfterCreateCompiler);
|
|
@@ -115,60 +143,57 @@ function applyCallbacks(api, options) {
|
|
|
115
143
|
options.onDevCompileDone && api.onDevCompileDone(options.onDevCompileDone);
|
|
116
144
|
options.onExit && api.onExit(options.onExit);
|
|
117
145
|
}
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* compat some config, if target is `node`
|
|
121
|
-
*/
|
|
122
146
|
function applyNodeCompat(chain, modernConfig, isProd) {
|
|
123
|
-
|
|
124
|
-
|
|
147
|
+
for (const ext of [
|
|
148
|
+
".node.js",
|
|
149
|
+
".node.jsx",
|
|
150
|
+
".node.ts",
|
|
151
|
+
".node.tsx",
|
|
152
|
+
".server.js",
|
|
153
|
+
".server.ts",
|
|
154
|
+
".server.ts",
|
|
155
|
+
".server.tsx"
|
|
156
|
+
]) {
|
|
125
157
|
chain.resolve.extensions.prepend(ext);
|
|
126
158
|
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
159
|
+
filterEntriesBySSRConfig(
|
|
160
|
+
isProd,
|
|
161
|
+
chain,
|
|
162
|
+
modernConfig.server,
|
|
163
|
+
modernConfig.output
|
|
164
|
+
);
|
|
165
|
+
function filterEntriesBySSRConfig(isProd2, chain2, serverConfig, outputConfig) {
|
|
166
|
+
var _a;
|
|
167
|
+
const entries = chain2.entryPoints.entries();
|
|
168
|
+
if (isProd2 && ((outputConfig == null ? void 0 : outputConfig.ssg) === true || typeof ((_a = outputConfig == null ? void 0 : outputConfig.ssg) == null ? void 0 : _a[0]) === "function")) {
|
|
135
169
|
return;
|
|
136
170
|
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
171
|
+
if (typeof entries === "undefined") {
|
|
172
|
+
throw new Error(
|
|
173
|
+
"No entry found, one of src/routes/layout.tsx, src/App.tsx, src/index.tsx is required"
|
|
174
|
+
);
|
|
175
|
+
}
|
|
140
176
|
const entryNames = Object.keys(entries);
|
|
141
|
-
if (
|
|
177
|
+
if (isProd2 && entryNames.length === 1 && (outputConfig == null ? void 0 : outputConfig.ssg)) {
|
|
142
178
|
return;
|
|
143
179
|
}
|
|
144
|
-
|
|
145
|
-
// collect all ssg entries
|
|
146
180
|
const ssgEntries = [];
|
|
147
|
-
if (
|
|
148
|
-
const {
|
|
149
|
-
|
|
150
|
-
} = outputConfig;
|
|
151
|
-
entryNames.forEach(name => {
|
|
181
|
+
if (isProd2 && (outputConfig == null ? void 0 : outputConfig.ssg)) {
|
|
182
|
+
const { ssg } = outputConfig;
|
|
183
|
+
entryNames.forEach((name) => {
|
|
152
184
|
if (ssg[name]) {
|
|
153
185
|
ssgEntries.push(name);
|
|
154
186
|
}
|
|
155
187
|
});
|
|
156
188
|
}
|
|
157
|
-
const {
|
|
158
|
-
|
|
159
|
-
ssrByEntries
|
|
160
|
-
|
|
161
|
-
entryNames.forEach(name => {
|
|
162
|
-
if (!ssgEntries.includes(name) && (ssr && (ssrByEntries === null || ssrByEntries === void 0 ? void 0 : ssrByEntries[name]) === false || !ssr && !(ssrByEntries !== null && ssrByEntries !== void 0 && ssrByEntries[name]))) {
|
|
163
|
-
chain.entryPoints.delete(name);
|
|
189
|
+
const { ssr, ssrByEntries } = serverConfig || {};
|
|
190
|
+
entryNames.forEach((name) => {
|
|
191
|
+
if (!ssgEntries.includes(name) && (ssr && (ssrByEntries == null ? void 0 : ssrByEntries[name]) === false || !ssr && !(ssrByEntries == null ? void 0 : ssrByEntries[name]))) {
|
|
192
|
+
chain2.entryPoints.delete(name);
|
|
164
193
|
}
|
|
165
194
|
});
|
|
166
195
|
}
|
|
167
196
|
}
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* inject bottom template
|
|
171
|
-
*/
|
|
172
197
|
function applyBottomHtmlWebpackPlugin({
|
|
173
198
|
api,
|
|
174
199
|
chain,
|
|
@@ -176,33 +201,40 @@ function applyBottomHtmlWebpackPlugin({
|
|
|
176
201
|
appContext,
|
|
177
202
|
CHAIN_ID
|
|
178
203
|
}) {
|
|
179
|
-
// inject bottomTemplate into html-webpack-plugin
|
|
180
204
|
for (const entryName of Object.keys(api.context.entry)) {
|
|
181
|
-
|
|
182
|
-
const baseTemplateParams = _objectSpread({
|
|
205
|
+
const baseTemplateParams = __spreadValues({
|
|
183
206
|
entryName,
|
|
184
|
-
title: (0,
|
|
207
|
+
title: (0, import_utils.getEntryOptions)(
|
|
208
|
+
entryName,
|
|
209
|
+
modernConfig.html.title,
|
|
210
|
+
modernConfig.html.titleByEntries,
|
|
211
|
+
appContext.packageName
|
|
212
|
+
),
|
|
185
213
|
mountId: modernConfig.html.mountId
|
|
186
|
-
}, (0,
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
214
|
+
}, (0, import_utils.getEntryOptions)(
|
|
215
|
+
entryName,
|
|
216
|
+
modernConfig.html.templateParameters,
|
|
217
|
+
modernConfig.html.templateParametersByEntries,
|
|
218
|
+
appContext.packageName
|
|
219
|
+
));
|
|
220
|
+
chain.plugin(`${CHAIN_ID.PLUGIN.HTML}-${entryName}`).tap((args) => [
|
|
221
|
+
__spreadProps(__spreadValues({}, args[0] || {}), {
|
|
222
|
+
__internal__: true,
|
|
223
|
+
bottomTemplate: appContext.htmlTemplates[`__${entryName}-bottom__`] && (0, import_lodash.template)(appContext.htmlTemplates[`__${entryName}-bottom__`])(
|
|
224
|
+
baseTemplateParams
|
|
225
|
+
)
|
|
226
|
+
})
|
|
227
|
+
]);
|
|
191
228
|
}
|
|
192
|
-
chain.plugin(CHAIN_ID.PLUGIN.BOTTOM_TEMPLATE).use(
|
|
229
|
+
chain.plugin(CHAIN_ID.PLUGIN.BOTTOM_TEMPLATE).use(import_htmlBottomTemplate.BottomTemplatePlugin, [import_html_webpack_plugin.default]);
|
|
193
230
|
}
|
|
194
|
-
const isStreamingSSR = userConfig => {
|
|
195
|
-
const isStreaming = ssr => ssr && typeof ssr ===
|
|
196
|
-
const {
|
|
197
|
-
server
|
|
198
|
-
} = userConfig;
|
|
231
|
+
const isStreamingSSR = (userConfig) => {
|
|
232
|
+
const isStreaming = (ssr) => ssr && typeof ssr === "object" && ssr.mode === "stream";
|
|
233
|
+
const { server } = userConfig;
|
|
199
234
|
if (isStreaming(server.ssr)) {
|
|
200
235
|
return true;
|
|
201
236
|
}
|
|
202
|
-
|
|
203
|
-
// Since we cannot apply different plugins for different entries,
|
|
204
|
-
// we regard the whole app as streaming ssr only if one entry meets the requirement.
|
|
205
|
-
if (server !== null && server !== void 0 && server.ssrByEntries && typeof server.ssrByEntries === 'object') {
|
|
237
|
+
if ((server == null ? void 0 : server.ssrByEntries) && typeof server.ssrByEntries === "object") {
|
|
206
238
|
for (const name of Object.keys(server.ssrByEntries)) {
|
|
207
239
|
if (isStreaming(server.ssrByEntries[name])) {
|
|
208
240
|
return true;
|
|
@@ -217,6 +249,10 @@ function applyAsyncChunkHtmlPlugin({
|
|
|
217
249
|
CHAIN_ID
|
|
218
250
|
}) {
|
|
219
251
|
if (isStreamingSSR(modernConfig)) {
|
|
220
|
-
chain.plugin(CHAIN_ID.PLUGIN.HTML_ASYNC_CHUNK).use(
|
|
252
|
+
chain.plugin(CHAIN_ID.PLUGIN.HTML_ASYNC_CHUNK).use(import_htmlAsyncChunkPlugin.HtmlAsyncChunkPlugin, [import_html_webpack_plugin.default]);
|
|
221
253
|
}
|
|
222
|
-
}
|
|
254
|
+
}
|
|
255
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
256
|
+
0 && (module.exports = {
|
|
257
|
+
PluginCompatModern
|
|
258
|
+
});
|