@modern-js/app-tools 2.15.0 → 2.17.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/CHANGELOG.md +68 -0
- package/dist/cjs/analyze/constants.js +37 -61
- package/dist/cjs/analyze/generateCode.js +102 -127
- package/dist/cjs/analyze/getBundleEntry.js +33 -66
- package/dist/cjs/analyze/getClientRoutes/getRoutes.js +61 -117
- package/dist/cjs/analyze/getClientRoutes/getRoutesLegacy.js +61 -115
- package/dist/cjs/analyze/getClientRoutes/index.js +15 -28
- package/dist/cjs/analyze/getClientRoutes/utils.js +24 -48
- package/dist/cjs/analyze/getFileSystemEntry.js +39 -79
- package/dist/cjs/analyze/getHtmlTemplate.js +88 -98
- package/dist/cjs/analyze/getServerRoutes.js +67 -110
- package/dist/cjs/analyze/index.js +265 -257
- package/dist/cjs/analyze/isDefaultExportFunction.js +66 -44
- package/dist/cjs/analyze/makeLegalIdentifier.js +7 -25
- package/dist/cjs/analyze/nestedRoutes.js +99 -104
- package/dist/cjs/analyze/templates.js +49 -110
- package/dist/cjs/analyze/utils.js +98 -102
- package/dist/cjs/builder/builder-rspack/adapterCopy.js +58 -100
- package/dist/cjs/builder/builder-rspack/index.js +14 -30
- package/dist/cjs/builder/builder-webpack/adapterModern.js +33 -50
- package/dist/cjs/builder/builder-webpack/createCopyPattern.js +16 -32
- package/dist/cjs/builder/builder-webpack/index.js +65 -46
- package/dist/cjs/builder/generator/createBuilderOptions.js +10 -26
- package/dist/cjs/builder/generator/createBuilderProviderConfig.js +11 -27
- package/dist/cjs/builder/generator/getBuilderTargets.js +13 -29
- package/dist/cjs/builder/generator/index.js +61 -55
- package/dist/cjs/builder/index.js +53 -43
- package/dist/cjs/builder/shared/builderPlugins/adapterBasic.js +13 -36
- package/dist/cjs/builder/shared/builderPlugins/adapterHtml.js +90 -90
- package/dist/cjs/builder/shared/builderPlugins/adapterSSR.js +108 -111
- package/dist/cjs/builder/shared/builderPlugins/index.js +20 -19
- package/dist/cjs/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +30 -30
- package/dist/cjs/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +32 -38
- package/dist/cjs/builder/shared/bundlerPlugins/RouterPlugin.js +86 -116
- package/dist/cjs/builder/shared/bundlerPlugins/index.js +20 -19
- package/dist/cjs/builder/shared/createCopyInfo.js +16 -42
- package/dist/cjs/builder/shared/index.js +20 -19
- package/dist/cjs/builder/shared/loaders/serverModuleLoader.js +8 -24
- package/dist/cjs/builder/shared/types.js +4 -15
- package/dist/cjs/commands/build.js +23 -40
- package/dist/cjs/commands/deploy.js +7 -25
- package/dist/cjs/commands/dev.js +38 -57
- package/dist/cjs/commands/index.js +20 -19
- package/dist/cjs/commands/inspect.js +10 -30
- package/dist/cjs/commands/serve.js +28 -66
- package/dist/cjs/config/default.js +34 -34
- package/dist/cjs/config/index.js +20 -19
- package/dist/cjs/config/initialize/index.js +11 -29
- package/dist/cjs/config/initialize/inits.js +103 -82
- package/dist/cjs/config/legacy/createHtmlConfig.js +8 -40
- package/dist/cjs/config/legacy/createOutputConfig.js +8 -51
- package/dist/cjs/config/legacy/createSourceConfig.js +8 -38
- package/dist/cjs/config/legacy/createToolsConfig.js +8 -43
- package/dist/cjs/config/legacy/index.js +22 -46
- package/dist/cjs/defineConfig.js +16 -31
- package/dist/cjs/exports/server.js +7 -25
- package/dist/cjs/hooks.js +33 -51
- package/dist/cjs/index.js +185 -166
- package/dist/cjs/initialize/index.js +84 -100
- package/dist/cjs/locale/en.js +13 -27
- package/dist/cjs/locale/index.js +18 -28
- package/dist/cjs/locale/zh.js +13 -27
- package/dist/cjs/schema/Schema.js +27 -31
- package/dist/cjs/schema/index.js +141 -71
- package/dist/cjs/schema/legacy.js +273 -96
- package/dist/cjs/types/config/deploy.js +4 -15
- package/dist/cjs/types/config/dev.js +4 -15
- package/dist/cjs/types/config/experiments.js +4 -15
- package/dist/cjs/types/config/html.js +4 -15
- package/dist/cjs/types/config/index.js +18 -17
- package/dist/cjs/types/config/output.js +4 -15
- package/dist/cjs/types/config/performance.js +4 -15
- package/dist/cjs/types/config/security.js +4 -15
- package/dist/cjs/types/config/source.js +4 -15
- package/dist/cjs/types/config/tools.js +4 -15
- package/dist/cjs/types/hooks.js +4 -15
- package/dist/cjs/types/index.js +20 -19
- package/dist/cjs/types/legacyConfig/deploy.js +4 -15
- package/dist/cjs/types/legacyConfig/dev.js +4 -15
- package/dist/cjs/types/legacyConfig/index.js +4 -15
- package/dist/cjs/types/legacyConfig/output.js +4 -15
- package/dist/cjs/types/legacyConfig/source.js +4 -15
- package/dist/cjs/types/legacyConfig/tools.js +4 -15
- package/dist/cjs/types/utils.js +4 -15
- package/dist/cjs/utils/config.js +74 -79
- package/dist/cjs/utils/createServer.js +16 -42
- package/dist/cjs/utils/env.js +7 -25
- package/dist/cjs/utils/generateWatchFiles.js +31 -52
- package/dist/cjs/utils/getSelectedEntries.js +13 -35
- package/dist/cjs/utils/getServerInternalPlugins.js +8 -29
- package/dist/cjs/utils/printInstructions.js +10 -28
- package/dist/cjs/utils/restart.js +13 -31
- package/dist/cjs/utils/routes.js +18 -39
- package/dist/cjs/utils/types.js +4 -15
- package/dist/esm/analyze/constants.js +40 -41
- package/dist/esm/analyze/generateCode.js +477 -455
- package/dist/esm/analyze/getBundleEntry.js +53 -54
- package/dist/esm/analyze/getClientRoutes/getRoutes.js +201 -202
- package/dist/esm/analyze/getClientRoutes/getRoutesLegacy.js +199 -200
- package/dist/esm/analyze/getClientRoutes/index.js +2 -3
- package/dist/esm/analyze/getClientRoutes/utils.js +15 -15
- package/dist/esm/analyze/getFileSystemEntry.js +86 -87
- package/dist/esm/analyze/getHtmlTemplate.js +289 -278
- package/dist/esm/analyze/getServerRoutes.js +203 -190
- package/dist/esm/analyze/index.js +679 -651
- package/dist/esm/analyze/isDefaultExportFunction.js +38 -39
- package/dist/esm/analyze/makeLegalIdentifier.js +8 -9
- package/dist/esm/analyze/nestedRoutes.js +400 -392
- package/dist/esm/analyze/templates.js +536 -509
- package/dist/esm/analyze/utils.js +357 -336
- package/dist/esm/builder/builder-rspack/adapterCopy.js +347 -330
- package/dist/esm/builder/builder-rspack/index.js +8 -9
- package/dist/esm/builder/builder-webpack/adapterModern.js +51 -43
- package/dist/esm/builder/builder-webpack/createCopyPattern.js +31 -32
- package/dist/esm/builder/builder-webpack/index.js +266 -249
- package/dist/esm/builder/generator/createBuilderOptions.js +37 -38
- package/dist/esm/builder/generator/createBuilderProviderConfig.js +62 -63
- package/dist/esm/builder/generator/getBuilderTargets.js +13 -14
- package/dist/esm/builder/generator/index.js +203 -196
- package/dist/esm/builder/index.js +183 -176
- package/dist/esm/builder/shared/builderPlugins/adapterBasic.js +90 -91
- package/dist/esm/builder/shared/builderPlugins/adapterHtml.js +300 -291
- package/dist/esm/builder/shared/builderPlugins/adapterSSR.js +337 -329
- package/dist/esm/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +108 -97
- package/dist/esm/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +66 -64
- package/dist/esm/builder/shared/bundlerPlugins/RouterPlugin.js +364 -337
- package/dist/esm/builder/shared/createCopyInfo.js +9 -10
- package/dist/esm/builder/shared/loaders/serverModuleLoader.js +2 -3
- package/dist/esm/builder/shared/types.js +1 -1
- package/dist/esm/commands/build.js +279 -272
- package/dist/esm/commands/deploy.js +150 -144
- package/dist/esm/commands/dev.js +296 -289
- package/dist/esm/commands/inspect.js +144 -138
- package/dist/esm/commands/serve.js +241 -235
- package/dist/esm/config/default.js +202 -203
- package/dist/esm/config/initialize/index.js +7 -8
- package/dist/esm/config/initialize/inits.js +189 -181
- package/dist/esm/config/legacy/createHtmlConfig.js +17 -18
- package/dist/esm/config/legacy/createOutputConfig.js +41 -42
- package/dist/esm/config/legacy/createSourceConfig.js +38 -39
- package/dist/esm/config/legacy/createToolsConfig.js +24 -25
- package/dist/esm/config/legacy/index.js +31 -32
- package/dist/esm/defineConfig.js +52 -53
- package/dist/esm/exports/server.js +1 -2
- package/dist/esm/hooks.js +26 -27
- package/dist/esm/index.js +685 -671
- package/dist/esm/initialize/index.js +276 -269
- package/dist/esm/locale/en.js +36 -37
- package/dist/esm/locale/index.js +2 -2
- package/dist/esm/locale/zh.js +36 -37
- package/dist/esm/schema/Schema.js +255 -244
- package/dist/esm/schema/index.js +165 -165
- package/dist/esm/schema/legacy.js +316 -317
- package/dist/esm/types/config/deploy.js +1 -1
- package/dist/esm/types/config/dev.js +1 -1
- package/dist/esm/types/config/experiments.js +1 -1
- package/dist/esm/types/config/html.js +1 -1
- package/dist/esm/types/config/output.js +1 -1
- package/dist/esm/types/config/performance.js +1 -1
- package/dist/esm/types/config/security.js +1 -1
- package/dist/esm/types/config/source.js +1 -1
- package/dist/esm/types/config/tools.js +1 -1
- package/dist/esm/types/hooks.js +1 -1
- package/dist/esm/types/legacyConfig/deploy.js +1 -1
- package/dist/esm/types/legacyConfig/dev.js +1 -1
- package/dist/esm/types/legacyConfig/index.js +1 -1
- package/dist/esm/types/legacyConfig/output.js +1 -1
- package/dist/esm/types/legacyConfig/source.js +1 -1
- package/dist/esm/types/legacyConfig/tools.js +1 -1
- package/dist/esm/types/utils.js +1 -1
- package/dist/esm/utils/config.js +285 -278
- package/dist/esm/utils/createServer.js +242 -234
- package/dist/esm/utils/env.js +11 -12
- package/dist/esm/utils/generateWatchFiles.js +205 -190
- package/dist/esm/utils/getSelectedEntries.js +180 -173
- package/dist/esm/utils/getServerInternalPlugins.js +197 -191
- package/dist/esm/utils/printInstructions.js +147 -141
- package/dist/esm/utils/restart.js +179 -173
- package/dist/esm/utils/routes.js +146 -139
- package/dist/esm/utils/types.js +1 -1
- package/dist/esm-node/analyze/constants.js +31 -46
- package/dist/esm-node/analyze/generateCode.js +28 -94
- package/dist/esm-node/analyze/getBundleEntry.js +8 -27
- package/dist/esm-node/analyze/getClientRoutes/getRoutes.js +24 -65
- package/dist/esm-node/analyze/getClientRoutes/getRoutesLegacy.js +24 -63
- package/dist/esm-node/analyze/getClientRoutes/index.js +2 -6
- package/dist/esm-node/analyze/getClientRoutes/utils.js +5 -19
- package/dist/esm-node/analyze/getFileSystemEntry.js +10 -37
- package/dist/esm-node/analyze/getHtmlTemplate.js +29 -59
- package/dist/esm-node/analyze/getServerRoutes.js +43 -75
- package/dist/esm-node/analyze/index.js +208 -230
- package/dist/esm-node/analyze/isDefaultExportFunction.js +7 -5
- package/dist/esm-node/analyze/makeLegalIdentifier.js +1 -4
- package/dist/esm-node/analyze/nestedRoutes.js +23 -43
- package/dist/esm-node/analyze/templates.js +22 -69
- package/dist/esm-node/analyze/utils.js +66 -60
- package/dist/esm-node/builder/builder-rspack/adapterCopy.js +40 -62
- package/dist/esm-node/builder/builder-rspack/index.js +4 -5
- package/dist/esm-node/builder/builder-webpack/adapterModern.js +24 -26
- package/dist/esm-node/builder/builder-webpack/createCopyPattern.js +3 -10
- package/dist/esm-node/builder/builder-webpack/index.js +13 -11
- package/dist/esm-node/builder/generator/createBuilderOptions.js +4 -5
- package/dist/esm-node/builder/generator/createBuilderProviderConfig.js +5 -6
- package/dist/esm-node/builder/generator/getBuilderTargets.js +5 -11
- package/dist/esm-node/builder/generator/index.js +7 -16
- package/dist/esm-node/builder/index.js +2 -7
- package/dist/esm-node/builder/shared/builderPlugins/adapterBasic.js +2 -6
- package/dist/esm-node/builder/shared/builderPlugins/adapterHtml.js +34 -60
- package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.js +54 -74
- package/dist/esm-node/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +23 -8
- package/dist/esm-node/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +25 -16
- package/dist/esm-node/builder/shared/bundlerPlugins/RouterPlugin.js +66 -76
- package/dist/esm-node/builder/shared/createCopyInfo.js +2 -8
- package/dist/esm-node/builder/shared/loaders/serverModuleLoader.js +1 -4
- package/dist/esm-node/builder/shared/types.js +1 -0
- package/dist/esm-node/commands/build.js +7 -9
- package/dist/esm-node/commands/deploy.js +1 -4
- package/dist/esm-node/commands/dev.js +19 -27
- package/dist/esm-node/commands/inspect.js +3 -8
- package/dist/esm-node/commands/serve.js +7 -25
- package/dist/esm-node/config/default.js +20 -11
- package/dist/esm-node/config/initialize/index.js +1 -4
- package/dist/esm-node/config/initialize/inits.js +48 -54
- package/dist/esm-node/config/legacy/createHtmlConfig.js +2 -19
- package/dist/esm-node/config/legacy/createOutputConfig.js +2 -30
- package/dist/esm-node/config/legacy/createSourceConfig.js +2 -17
- package/dist/esm-node/config/legacy/createToolsConfig.js +2 -22
- package/dist/esm-node/config/legacy/index.js +3 -18
- package/dist/esm-node/defineConfig.js +7 -13
- package/dist/esm-node/exports/server.js +1 -4
- package/dist/esm-node/hooks.js +2 -9
- package/dist/esm-node/index.js +95 -120
- package/dist/esm-node/initialize/index.js +74 -87
- package/dist/esm-node/locale/en.js +7 -6
- package/dist/esm-node/locale/index.js +5 -5
- package/dist/esm-node/locale/zh.js +7 -6
- package/dist/esm-node/schema/Schema.js +19 -8
- package/dist/esm-node/schema/index.js +121 -36
- package/dist/esm-node/schema/legacy.js +262 -72
- package/dist/esm-node/types/config/deploy.js +1 -0
- package/dist/esm-node/types/config/dev.js +1 -0
- package/dist/esm-node/types/config/experiments.js +1 -0
- package/dist/esm-node/types/config/html.js +1 -0
- package/dist/esm-node/types/config/output.js +1 -0
- package/dist/esm-node/types/config/performance.js +1 -0
- package/dist/esm-node/types/config/security.js +1 -0
- package/dist/esm-node/types/config/source.js +1 -0
- package/dist/esm-node/types/config/tools.js +1 -0
- package/dist/esm-node/types/hooks.js +1 -0
- package/dist/esm-node/types/legacyConfig/deploy.js +1 -0
- package/dist/esm-node/types/legacyConfig/dev.js +1 -0
- package/dist/esm-node/types/legacyConfig/index.js +1 -0
- package/dist/esm-node/types/legacyConfig/output.js +1 -0
- package/dist/esm-node/types/legacyConfig/source.js +1 -0
- package/dist/esm-node/types/legacyConfig/tools.js +1 -0
- package/dist/esm-node/types/utils.js +1 -0
- package/dist/esm-node/utils/config.js +16 -47
- package/dist/esm-node/utils/createServer.js +5 -12
- package/dist/esm-node/utils/env.js +1 -4
- package/dist/esm-node/utils/generateWatchFiles.js +13 -20
- package/dist/esm-node/utils/getSelectedEntries.js +2 -9
- package/dist/esm-node/utils/getServerInternalPlugins.js +2 -8
- package/dist/esm-node/utils/printInstructions.js +1 -4
- package/dist/esm-node/utils/restart.js +2 -11
- package/dist/esm-node/utils/routes.js +4 -4
- package/dist/esm-node/utils/types.js +1 -0
- package/dist/types/index.d.ts +2 -2
- package/package.json +29 -25
|
@@ -7,16 +7,11 @@ const replaceDynamicPath = (routePath) => {
|
|
|
7
7
|
return routePath.replace(/\[(.*?)\]/g, ":$1");
|
|
8
8
|
};
|
|
9
9
|
const createIndexRoute = (routeInfo, rootDir, filename, entryName) => {
|
|
10
|
-
return createRoute(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
},
|
|
16
|
-
rootDir,
|
|
17
|
-
filename,
|
|
18
|
-
entryName
|
|
19
|
-
);
|
|
10
|
+
return createRoute({
|
|
11
|
+
...routeInfo,
|
|
12
|
+
index: true,
|
|
13
|
+
children: void 0
|
|
14
|
+
}, rootDir, filename, entryName);
|
|
20
15
|
};
|
|
21
16
|
const createRoute = (routeInfo, rootDir, filename, entryName) => {
|
|
22
17
|
const id = getRouteId(filename, rootDir, entryName);
|
|
@@ -26,8 +21,8 @@ const createRoute = (routeInfo, rootDir, filename, entryName) => {
|
|
|
26
21
|
type: "nested"
|
|
27
22
|
};
|
|
28
23
|
};
|
|
29
|
-
const walk = async (dirname, rootDir, alias, entryName) => {
|
|
30
|
-
var
|
|
24
|
+
export const walk = async (dirname, rootDir, alias, entryName) => {
|
|
25
|
+
var _route_children;
|
|
31
26
|
if (!await fs.pathExists(dirname)) {
|
|
32
27
|
return null;
|
|
33
28
|
}
|
|
@@ -47,7 +42,7 @@ const walk = async (dirname, rootDir, alias, entryName) => {
|
|
|
47
42
|
}
|
|
48
43
|
routePath = replaceDynamicPath(routePath);
|
|
49
44
|
const route = {
|
|
50
|
-
path: routePath
|
|
45
|
+
path: routePath === null || routePath === void 0 ? void 0 : routePath.replace(/\$$/, "?"),
|
|
51
46
|
children: [],
|
|
52
47
|
isRoot
|
|
53
48
|
};
|
|
@@ -65,7 +60,8 @@ const walk = async (dirname, rootDir, alias, entryName) => {
|
|
|
65
60
|
if (isDirectory2) {
|
|
66
61
|
const childRoute = await walk(itemPath, rootDir, alias, entryName);
|
|
67
62
|
if (childRoute) {
|
|
68
|
-
|
|
63
|
+
var _route_children1;
|
|
64
|
+
(_route_children1 = route.children) === null || _route_children1 === void 0 ? void 0 : _route_children1.push(childRoute);
|
|
69
65
|
}
|
|
70
66
|
}
|
|
71
67
|
if (extname && (!JS_EXTENSIONS.includes(extname) || !conventionNames.includes(itemWithoutExt))) {
|
|
@@ -91,39 +87,31 @@ const walk = async (dirname, rootDir, alias, entryName) => {
|
|
|
91
87
|
pageConfigFile = itemPath;
|
|
92
88
|
}
|
|
93
89
|
if (itemWithoutExt === NESTED_ROUTE.PAGE_FILE) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
rootDir,
|
|
99
|
-
itemPath,
|
|
100
|
-
entryName
|
|
101
|
-
);
|
|
90
|
+
var _route_children2;
|
|
91
|
+
pageRoute = createIndexRoute({
|
|
92
|
+
_component: replaceWithAlias(alias.basename, itemPath, alias.name)
|
|
93
|
+
}, rootDir, itemPath, entryName);
|
|
102
94
|
if (pageLoaderFile) {
|
|
103
95
|
pageRoute.loader = pageLoaderFile;
|
|
104
96
|
}
|
|
105
97
|
if (pageConfigFile) {
|
|
106
98
|
pageRoute.config = pageConfigFile;
|
|
107
99
|
}
|
|
108
|
-
(
|
|
100
|
+
(_route_children2 = route.children) === null || _route_children2 === void 0 ? void 0 : _route_children2.push(pageRoute);
|
|
109
101
|
}
|
|
110
102
|
if (itemWithoutExt === NESTED_ROUTE.SPLATE_LOADER_FILE) {
|
|
111
103
|
splatLoaderFile = itemPath;
|
|
112
104
|
}
|
|
113
105
|
if (itemWithoutExt === NESTED_ROUTE.SPLATE_FILE) {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
rootDir,
|
|
120
|
-
itemPath,
|
|
121
|
-
entryName
|
|
122
|
-
);
|
|
106
|
+
var _route_children3;
|
|
107
|
+
splatRoute = createRoute({
|
|
108
|
+
_component: replaceWithAlias(alias.basename, itemPath, alias.name),
|
|
109
|
+
path: "*"
|
|
110
|
+
}, rootDir, itemPath, entryName);
|
|
123
111
|
if (splatLoaderFile) {
|
|
124
112
|
splatRoute.loader = splatLoaderFile;
|
|
125
113
|
}
|
|
126
|
-
(
|
|
114
|
+
(_route_children3 = route.children) === null || _route_children3 === void 0 ? void 0 : _route_children3.push(splatRoute);
|
|
127
115
|
}
|
|
128
116
|
if (itemWithoutExt === NESTED_ROUTE.LOADING_FILE) {
|
|
129
117
|
route.loading = replaceWithAlias(alias.basename, itemPath, alias.name);
|
|
@@ -132,16 +120,11 @@ const walk = async (dirname, rootDir, alias, entryName) => {
|
|
|
132
120
|
route.error = replaceWithAlias(alias.basename, itemPath, alias.name);
|
|
133
121
|
}
|
|
134
122
|
}
|
|
135
|
-
let finalRoute = createRoute(
|
|
136
|
-
route,
|
|
137
|
-
rootDir,
|
|
138
|
-
path.join(dirname, `${NESTED_ROUTE.LAYOUT_FILE}.ts`),
|
|
139
|
-
entryName
|
|
140
|
-
);
|
|
123
|
+
let finalRoute = createRoute(route, rootDir, path.join(dirname, `${NESTED_ROUTE.LAYOUT_FILE}.ts`), entryName);
|
|
141
124
|
if (isPathlessLayout) {
|
|
142
125
|
delete finalRoute.path;
|
|
143
126
|
}
|
|
144
|
-
route.children = (
|
|
127
|
+
route.children = (_route_children = route.children) === null || _route_children === void 0 ? void 0 : _route_children.filter((childRoute) => childRoute);
|
|
145
128
|
if (route.children && route.children.length === 0 && !route.index) {
|
|
146
129
|
return null;
|
|
147
130
|
}
|
|
@@ -157,6 +140,3 @@ const walk = async (dirname, rootDir, alias, entryName) => {
|
|
|
157
140
|
}
|
|
158
141
|
return finalRoute;
|
|
159
142
|
};
|
|
160
|
-
export {
|
|
161
|
-
walk
|
|
162
|
-
};
|
|
@@ -2,12 +2,7 @@ import path from "path";
|
|
|
2
2
|
import { fs, getEntryOptions, isSSGEntry, slash } from "@modern-js/utils";
|
|
3
3
|
import { APP_CONFIG_NAME, TEMP_LOADERS_DIR } from "./constants";
|
|
4
4
|
import { getServerLoadersFile } from "./utils";
|
|
5
|
-
const index = ({
|
|
6
|
-
mountId,
|
|
7
|
-
imports,
|
|
8
|
-
renderFunction: renderFunction2,
|
|
9
|
-
exportStatement
|
|
10
|
-
}) => `
|
|
5
|
+
export const index = ({ mountId, imports, renderFunction: renderFunction2, exportStatement }) => `
|
|
11
6
|
const IS_BROWSER = typeof window !== 'undefined' && window.name !== 'nodejs';
|
|
12
7
|
const IS_REACT18 = process.env.IS_REACT18 === 'true';
|
|
13
8
|
const MOUNT_ID = '${mountId}';
|
|
@@ -26,11 +21,7 @@ AppWrapper = render();
|
|
|
26
21
|
|
|
27
22
|
${exportStatement};
|
|
28
23
|
`;
|
|
29
|
-
const renderFunction = ({
|
|
30
|
-
plugins,
|
|
31
|
-
customBootstrap,
|
|
32
|
-
fileSystemRoutes: fileSystemRoutes2
|
|
33
|
-
}) => {
|
|
24
|
+
export const renderFunction = ({ plugins, customBootstrap, fileSystemRoutes: fileSystemRoutes2 }) => {
|
|
34
25
|
const bootstrap = "bootstrap(AppWrapper, MOUNT_ID, root, ReactDOM)";
|
|
35
26
|
return `
|
|
36
27
|
const finalAppConfig = {
|
|
@@ -40,9 +31,7 @@ const renderFunction = ({
|
|
|
40
31
|
|
|
41
32
|
AppWrapper = createApp({
|
|
42
33
|
plugins: [
|
|
43
|
-
${plugins.map(
|
|
44
|
-
({ name, options, args }) => `${name}({...${options}, ...finalAppConfig?.${args || name}}),`
|
|
45
|
-
).join("\n")}
|
|
34
|
+
${plugins.map(({ name, options, args }) => `${name}({...${options}, ...finalAppConfig?.${args || name}}),`).join("\n")}
|
|
46
35
|
]
|
|
47
36
|
})(${fileSystemRoutes2 ? "" : `App`})
|
|
48
37
|
|
|
@@ -59,7 +48,7 @@ const renderFunction = ({
|
|
|
59
48
|
return AppWrapper
|
|
60
49
|
`;
|
|
61
50
|
};
|
|
62
|
-
const html = (partials) => `
|
|
51
|
+
export const html = (partials) => `
|
|
63
52
|
<!DOCTYPE html>
|
|
64
53
|
<html>
|
|
65
54
|
<head>
|
|
@@ -85,15 +74,13 @@ const html = (partials) => `
|
|
|
85
74
|
|
|
86
75
|
</html>
|
|
87
76
|
`;
|
|
88
|
-
const routesForServer = ({
|
|
89
|
-
routes
|
|
90
|
-
}) => {
|
|
77
|
+
export const routesForServer = ({ routes }) => {
|
|
91
78
|
const loaders = [];
|
|
92
79
|
const traverseRouteTree = (route) => {
|
|
93
|
-
var _a;
|
|
94
80
|
let children;
|
|
95
81
|
if ("children" in route && route.children) {
|
|
96
|
-
|
|
82
|
+
var _route_children;
|
|
83
|
+
children = route === null || route === void 0 ? void 0 : (_route_children = route.children) === null || _route_children === void 0 ? void 0 : _route_children.map(traverseRouteTree);
|
|
97
84
|
}
|
|
98
85
|
let loader;
|
|
99
86
|
if (route.type === "nested") {
|
|
@@ -115,10 +102,7 @@ const routesForServer = ({
|
|
|
115
102
|
for (const route of routes) {
|
|
116
103
|
if ("type" in route) {
|
|
117
104
|
const newRoute = traverseRouteTree(route);
|
|
118
|
-
routesCode += `${JSON.stringify(newRoute, null, 2).replace(
|
|
119
|
-
/"(loader_[^"]+)"/g,
|
|
120
|
-
"$1"
|
|
121
|
-
)},`;
|
|
105
|
+
routesCode += `${JSON.stringify(newRoute, null, 2).replace(/"(loader_[^"]+)"/g, "$1")},`;
|
|
122
106
|
} else {
|
|
123
107
|
routesCode += `${JSON.stringify(route, null, 2)}`;
|
|
124
108
|
}
|
|
@@ -137,14 +121,7 @@ const routesForServer = ({
|
|
|
137
121
|
`;
|
|
138
122
|
};
|
|
139
123
|
const createMatchReg = (keyword) => new RegExp(`("${keyword}":\\s)"([^,]+)"`, "g");
|
|
140
|
-
const fileSystemRoutes = async ({
|
|
141
|
-
routes,
|
|
142
|
-
ssrMode,
|
|
143
|
-
nestedRoutesEntry,
|
|
144
|
-
entryName,
|
|
145
|
-
internalDirectory,
|
|
146
|
-
splitRouteChunks = true
|
|
147
|
-
}) => {
|
|
124
|
+
export const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, entryName, internalDirectory, splitRouteChunks = true }) => {
|
|
148
125
|
const components = [];
|
|
149
126
|
const loadings = [];
|
|
150
127
|
const errors = [];
|
|
@@ -152,12 +129,7 @@ const fileSystemRoutes = async ({
|
|
|
152
129
|
const loadersMap = {};
|
|
153
130
|
const configs = [];
|
|
154
131
|
const configsMap = {};
|
|
155
|
-
const loadersMapFile = path.join(
|
|
156
|
-
internalDirectory,
|
|
157
|
-
entryName,
|
|
158
|
-
TEMP_LOADERS_DIR,
|
|
159
|
-
"map.json"
|
|
160
|
-
);
|
|
132
|
+
const loadersMapFile = path.join(internalDirectory, entryName, TEMP_LOADERS_DIR, "map.json");
|
|
161
133
|
const importLazyCode = `
|
|
162
134
|
import { lazy } from "react";
|
|
163
135
|
import loadable, { lazy as loadableLazy } from "@modern-js/runtime/loadable"
|
|
@@ -173,10 +145,10 @@ const fileSystemRoutes = async ({
|
|
|
173
145
|
return "";
|
|
174
146
|
};
|
|
175
147
|
const traverseRouteTree = (route) => {
|
|
176
|
-
var _a;
|
|
177
148
|
let children;
|
|
178
149
|
if ("children" in route && route.children) {
|
|
179
|
-
|
|
150
|
+
var _route_children;
|
|
151
|
+
children = route === null || route === void 0 ? void 0 : (_route_children = route.children) === null || _route_children === void 0 ? void 0 : _route_children.map(traverseRouteTree);
|
|
180
152
|
}
|
|
181
153
|
let loading;
|
|
182
154
|
let error;
|
|
@@ -273,7 +245,10 @@ const fileSystemRoutes = async ({
|
|
|
273
245
|
...route,
|
|
274
246
|
component
|
|
275
247
|
};
|
|
276
|
-
const keywords = [
|
|
248
|
+
const keywords = [
|
|
249
|
+
"component",
|
|
250
|
+
"lazyImport"
|
|
251
|
+
];
|
|
277
252
|
const routeStr = JSON.stringify(finalRoute, null, 2);
|
|
278
253
|
const regs = keywords.map(createMatchReg);
|
|
279
254
|
const newRouteStr = regs.reduce((acc, reg) => acc.replace(reg, "$1$2"), routeStr).replace(/\\"/g, '"');
|
|
@@ -297,14 +272,10 @@ const fileSystemRoutes = async ({
|
|
|
297
272
|
let importLoadersCode = "";
|
|
298
273
|
for (const [key, loaderInfo] of Object.entries(loadersMap)) {
|
|
299
274
|
if (loaderInfo.inline) {
|
|
300
|
-
importLoadersCode += `import { loader as ${key} } from "${slash(
|
|
301
|
-
loaderInfo.filePath
|
|
302
|
-
)}${getDataLoaderPath(key)}";
|
|
275
|
+
importLoadersCode += `import { loader as ${key} } from "${slash(loaderInfo.filePath)}${getDataLoaderPath(key)}";
|
|
303
276
|
`;
|
|
304
277
|
} else {
|
|
305
|
-
importLoadersCode += `import ${key} from "${slash(
|
|
306
|
-
loaderInfo.filePath
|
|
307
|
-
)}${getDataLoaderPath(key)}";
|
|
278
|
+
importLoadersCode += `import ${key} from "${slash(loaderInfo.filePath)}${getDataLoaderPath(key)}";
|
|
308
279
|
`;
|
|
309
280
|
}
|
|
310
281
|
}
|
|
@@ -326,34 +297,16 @@ const fileSystemRoutes = async ({
|
|
|
326
297
|
${routeComponentsCode}
|
|
327
298
|
`;
|
|
328
299
|
};
|
|
329
|
-
function ssrLoaderCombinedModule(entrypoints, entrypoint, config, appContext) {
|
|
300
|
+
export function ssrLoaderCombinedModule(entrypoints, entrypoint, config, appContext) {
|
|
330
301
|
const { entryName } = entrypoint;
|
|
331
302
|
const { packageName, internalDirectory } = appContext;
|
|
332
|
-
const ssr = getEntryOptions(
|
|
333
|
-
entryName,
|
|
334
|
-
config.server.ssr,
|
|
335
|
-
config.server.ssrByEntries,
|
|
336
|
-
packageName
|
|
337
|
-
);
|
|
303
|
+
const ssr = getEntryOptions(entryName, config.server.ssr, config.server.ssrByEntries, packageName);
|
|
338
304
|
const ssg = isSSGEntry(config, entryName, entrypoints);
|
|
339
305
|
if (entrypoint.nestedRoutesEntry && (ssr || ssg)) {
|
|
340
306
|
const serverLoaderRuntime = require.resolve("@modern-js/plugin-data-loader/runtime");
|
|
341
|
-
const serverLoadersFile = getServerLoadersFile(
|
|
342
|
-
|
|
343
|
-
entryName
|
|
344
|
-
);
|
|
345
|
-
const combinedModule = `export * from "${slash(
|
|
346
|
-
serverLoaderRuntime
|
|
347
|
-
)}"; export * from "${slash(serverLoadersFile)}"`;
|
|
307
|
+
const serverLoadersFile = getServerLoadersFile(internalDirectory, entryName);
|
|
308
|
+
const combinedModule = `export * from "${slash(serverLoaderRuntime)}"; export * from "${slash(serverLoadersFile)}"`;
|
|
348
309
|
return combinedModule;
|
|
349
310
|
}
|
|
350
311
|
return null;
|
|
351
312
|
}
|
|
352
|
-
export {
|
|
353
|
-
fileSystemRoutes,
|
|
354
|
-
html,
|
|
355
|
-
index,
|
|
356
|
-
renderFunction,
|
|
357
|
-
routesForServer,
|
|
358
|
-
ssrLoaderCombinedModule
|
|
359
|
-
};
|
|
@@ -3,63 +3,77 @@ import path from "path";
|
|
|
3
3
|
import { isReact18, normalizeToPosixPath, fs as fse } from "@modern-js/utils";
|
|
4
4
|
import { transform } from "esbuild";
|
|
5
5
|
import { parse } from "es-module-lexer";
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
JS_EXTENSIONS,
|
|
9
|
-
LOADER_EXPORT_NAME
|
|
10
|
-
} from "./constants";
|
|
11
|
-
const walkDirectory = (dir) => fs.readdirSync(dir).reduce((previous, filename) => {
|
|
6
|
+
import { FILE_SYSTEM_ROUTES_FILE_NAME, JS_EXTENSIONS, LOADER_EXPORT_NAME } from "./constants";
|
|
7
|
+
export const walkDirectory = (dir) => fs.readdirSync(dir).reduce((previous, filename) => {
|
|
12
8
|
const filePath = path.join(dir, filename);
|
|
13
9
|
if (fs.statSync(filePath).isDirectory()) {
|
|
14
|
-
return [
|
|
10
|
+
return [
|
|
11
|
+
...previous,
|
|
12
|
+
...walkDirectory(filePath)
|
|
13
|
+
];
|
|
15
14
|
} else {
|
|
16
|
-
return [
|
|
15
|
+
return [
|
|
16
|
+
...previous,
|
|
17
|
+
filePath
|
|
18
|
+
];
|
|
17
19
|
}
|
|
18
20
|
}, []);
|
|
19
|
-
const getDefaultImports = ({
|
|
20
|
-
entrypoint,
|
|
21
|
-
srcDirectory,
|
|
22
|
-
internalSrcAlias,
|
|
23
|
-
internalDirAlias,
|
|
24
|
-
internalDirectory
|
|
25
|
-
}) => {
|
|
21
|
+
export const getDefaultImports = ({ entrypoint, srcDirectory, internalSrcAlias, internalDirAlias, internalDirectory }) => {
|
|
26
22
|
const { entryName, fileSystemRoutes, customBootstrap, entry } = entrypoint;
|
|
27
23
|
const imports = [
|
|
28
24
|
{
|
|
29
|
-
specifiers: [
|
|
25
|
+
specifiers: [
|
|
26
|
+
{
|
|
27
|
+
local: "React"
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
30
|
value: "react"
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
|
-
specifiers: [
|
|
33
|
+
specifiers: [
|
|
34
|
+
{
|
|
35
|
+
local: "ReactDOM"
|
|
36
|
+
}
|
|
37
|
+
],
|
|
34
38
|
value: isReact18(path.join(internalDirectory, "../../")) ? "react-dom/client" : "react-dom"
|
|
35
39
|
},
|
|
36
40
|
{
|
|
37
|
-
specifiers: [
|
|
41
|
+
specifiers: [
|
|
42
|
+
{
|
|
43
|
+
imported: "createApp"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
imported: "bootstrap"
|
|
47
|
+
}
|
|
48
|
+
],
|
|
38
49
|
value: "@modern-js/runtime"
|
|
39
50
|
},
|
|
40
51
|
customBootstrap && {
|
|
41
|
-
specifiers: [
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
52
|
+
specifiers: [
|
|
53
|
+
{
|
|
54
|
+
local: "customBootstrap"
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
value: normalizeToPosixPath(customBootstrap.replace(srcDirectory, internalSrcAlias))
|
|
45
58
|
}
|
|
46
59
|
].filter(Boolean);
|
|
47
60
|
if (fileSystemRoutes) {
|
|
48
61
|
const route = {
|
|
49
|
-
specifiers: [
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
)
|
|
62
|
+
specifiers: [
|
|
63
|
+
{
|
|
64
|
+
imported: "routes"
|
|
65
|
+
}
|
|
66
|
+
],
|
|
67
|
+
value: normalizeToPosixPath(`${internalDirAlias}/${entryName}/${FILE_SYSTEM_ROUTES_FILE_NAME.replace(".js", "")}`)
|
|
56
68
|
};
|
|
57
69
|
if (fileSystemRoutes.globalApp) {
|
|
58
70
|
imports.push({
|
|
59
|
-
specifiers: [
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
71
|
+
specifiers: [
|
|
72
|
+
{
|
|
73
|
+
local: "App"
|
|
74
|
+
}
|
|
75
|
+
],
|
|
76
|
+
value: normalizeToPosixPath(fileSystemRoutes.globalApp.replace(srcDirectory, internalSrcAlias))
|
|
63
77
|
});
|
|
64
78
|
} else {
|
|
65
79
|
route.initialize = "const App = false;";
|
|
@@ -67,36 +81,38 @@ const getDefaultImports = ({
|
|
|
67
81
|
imports.push(route);
|
|
68
82
|
} else {
|
|
69
83
|
imports.push({
|
|
70
|
-
specifiers: [
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
84
|
+
specifiers: [
|
|
85
|
+
{
|
|
86
|
+
local: "App"
|
|
87
|
+
}
|
|
88
|
+
],
|
|
89
|
+
value: normalizeToPosixPath(entry.replace(srcDirectory, internalSrcAlias))
|
|
74
90
|
});
|
|
75
91
|
}
|
|
76
92
|
return imports;
|
|
77
93
|
};
|
|
78
|
-
const isPageComponentFile = (filePath) => {
|
|
94
|
+
export const isPageComponentFile = (filePath) => {
|
|
79
95
|
if (/\.(d|test|spec|e2e)\.(js|jsx|ts|tsx)$/.test(filePath)) {
|
|
80
96
|
return false;
|
|
81
97
|
}
|
|
82
|
-
if ([
|
|
98
|
+
if ([
|
|
99
|
+
".js",
|
|
100
|
+
".jsx",
|
|
101
|
+
".ts",
|
|
102
|
+
".tsx"
|
|
103
|
+
].includes(path.extname(filePath))) {
|
|
83
104
|
return true;
|
|
84
105
|
}
|
|
85
106
|
return false;
|
|
86
107
|
};
|
|
87
|
-
const replaceWithAlias = (base, filePath, alias) => {
|
|
108
|
+
export const replaceWithAlias = (base, filePath, alias) => {
|
|
88
109
|
if (filePath.includes(base)) {
|
|
89
|
-
return normalizeToPosixPath(
|
|
90
|
-
path.join(alias, path.relative(base, filePath))
|
|
91
|
-
);
|
|
110
|
+
return normalizeToPosixPath(path.join(alias, path.relative(base, filePath)));
|
|
92
111
|
} else {
|
|
93
112
|
return filePath;
|
|
94
113
|
}
|
|
95
114
|
};
|
|
96
|
-
const parseModule = async ({
|
|
97
|
-
source,
|
|
98
|
-
filename
|
|
99
|
-
}) => {
|
|
115
|
+
export const parseModule = async ({ source, filename }) => {
|
|
100
116
|
let content = source;
|
|
101
117
|
if (JS_EXTENSIONS.some((ext) => filename.endsWith(ext))) {
|
|
102
118
|
const result = await transform(content, {
|
|
@@ -107,7 +123,7 @@ const parseModule = async ({
|
|
|
107
123
|
}
|
|
108
124
|
return await parse(content);
|
|
109
125
|
};
|
|
110
|
-
const hasLoader = async (filename) => {
|
|
126
|
+
export const hasLoader = async (filename) => {
|
|
111
127
|
const source = await fse.readFile(filename);
|
|
112
128
|
const [, moduleExports] = await parseModule({
|
|
113
129
|
source: source.toString(),
|
|
@@ -115,19 +131,9 @@ const hasLoader = async (filename) => {
|
|
|
115
131
|
});
|
|
116
132
|
return moduleExports.some((e) => e.n === LOADER_EXPORT_NAME);
|
|
117
133
|
};
|
|
118
|
-
const getServerLoadersFile = (internalDirectory, entryName) => {
|
|
134
|
+
export const getServerLoadersFile = (internalDirectory, entryName) => {
|
|
119
135
|
return path.join(internalDirectory, entryName, "route-server-loaders.js");
|
|
120
136
|
};
|
|
121
|
-
const getServerCombinedModueFile = (internalDirectory, entryName) => {
|
|
137
|
+
export const getServerCombinedModueFile = (internalDirectory, entryName) => {
|
|
122
138
|
return path.join(internalDirectory, entryName, "server-loader-combined.js");
|
|
123
139
|
};
|
|
124
|
-
export {
|
|
125
|
-
getDefaultImports,
|
|
126
|
-
getServerCombinedModueFile,
|
|
127
|
-
getServerLoadersFile,
|
|
128
|
-
hasLoader,
|
|
129
|
-
isPageComponentFile,
|
|
130
|
-
parseModule,
|
|
131
|
-
replaceWithAlias,
|
|
132
|
-
walkDirectory
|
|
133
|
-
};
|
|
@@ -2,71 +2,52 @@ import path from "path";
|
|
|
2
2
|
import fs from "@modern-js/utils/fs-extra";
|
|
3
3
|
import { logger, removeTailSlash } from "@modern-js/utils";
|
|
4
4
|
import { createCopyInfo } from "../shared";
|
|
5
|
-
const builderPluginAdpaterCopy = (options) =>
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
5
|
+
export const builderPluginAdpaterCopy = (options) => {
|
|
6
|
+
return {
|
|
7
|
+
name: "builder-plugin-adapter-rspack-copy",
|
|
8
|
+
setup(api) {
|
|
9
|
+
let publicPath;
|
|
10
|
+
api.modifyRspackConfig((config) => {
|
|
11
|
+
var _config_builtins, _config_builtins_copy, _config_output;
|
|
12
|
+
config.builtins = {
|
|
13
|
+
...config.builtins || {},
|
|
14
|
+
copy: {
|
|
15
|
+
patterns: [
|
|
16
|
+
...transformCopy((_config_builtins = config.builtins) === null || _config_builtins === void 0 ? void 0 : (_config_builtins_copy = _config_builtins.copy) === null || _config_builtins_copy === void 0 ? void 0 : _config_builtins_copy.patterns),
|
|
17
|
+
...createConfigBuiltinCopy(options)
|
|
18
|
+
]
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
publicPath = (_config_output = config.output) === null || _config_output === void 0 ? void 0 : _config_output.publicPath;
|
|
22
|
+
});
|
|
23
|
+
api.onDevCompileDone(async () => {
|
|
24
|
+
await transformHtmlFiles();
|
|
25
|
+
});
|
|
26
|
+
api.onAfterBuild(async () => {
|
|
27
|
+
await transformHtmlFiles();
|
|
28
|
+
});
|
|
29
|
+
async function transformHtmlFiles() {
|
|
30
|
+
var _normalizedConfig_output_distPath;
|
|
31
|
+
const { normalizedConfig } = options;
|
|
32
|
+
const publicDir = path.resolve(((_normalizedConfig_output_distPath = normalizedConfig.output.distPath) === null || _normalizedConfig_output_distPath === void 0 ? void 0 : _normalizedConfig_output_distPath.root) || "./dist", "./public");
|
|
33
|
+
if (!fs.existsSync(publicDir) || !fs.statSync(publicDir).isDirectory()) {
|
|
34
|
+
return;
|
|
18
35
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
api.onDevCompileDone(async () => {
|
|
23
|
-
await transformHtmlFiles();
|
|
24
|
-
});
|
|
25
|
-
api.onAfterBuild(async () => {
|
|
26
|
-
await transformHtmlFiles();
|
|
27
|
-
});
|
|
28
|
-
async function transformHtmlFiles() {
|
|
29
|
-
var _a;
|
|
30
|
-
const { normalizedConfig } = options;
|
|
31
|
-
const publicDir = path.resolve(
|
|
32
|
-
((_a = normalizedConfig.output.distPath) == null ? void 0 : _a.root) || "./dist",
|
|
33
|
-
"./public"
|
|
34
|
-
);
|
|
35
|
-
if (!fs.existsSync(publicDir) || !fs.statSync(publicDir).isDirectory()) {
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
const HTML_REGEXP = /\.html?$/;
|
|
39
|
-
const filepaths = (await fs.readdir(publicDir)).map(
|
|
40
|
-
(file) => path.resolve(publicDir, file)
|
|
41
|
-
);
|
|
42
|
-
await Promise.all(
|
|
43
|
-
filepaths.filter((file) => HTML_REGEXP.test(file)).map(async (file) => {
|
|
36
|
+
const HTML_REGEXP = /\.html?$/;
|
|
37
|
+
const filepaths = (await fs.readdir(publicDir)).map((file) => path.resolve(publicDir, file));
|
|
38
|
+
await Promise.all(filepaths.filter((file) => HTML_REGEXP.test(file)).map(async (file) => {
|
|
44
39
|
const content = await fs.readFile(file, "utf-8");
|
|
45
40
|
if (publicPath) {
|
|
46
|
-
await fs.writeFile(
|
|
47
|
-
file,
|
|
48
|
-
content.replace(
|
|
49
|
-
/<%=\s*assetPrefix\s*%>/g,
|
|
50
|
-
removeTailSlash(publicPath)
|
|
51
|
-
)
|
|
52
|
-
);
|
|
41
|
+
await fs.writeFile(file, content.replace(/<%=\s*assetPrefix\s*%>/g, removeTailSlash(publicPath)));
|
|
53
42
|
} else {
|
|
54
|
-
logger.warn(
|
|
55
|
-
|
|
56
|
-
);
|
|
57
|
-
await fs.writeFile(
|
|
58
|
-
file,
|
|
59
|
-
content.replace(
|
|
60
|
-
/<%=\s*assetPrefix\s*%>/g,
|
|
61
|
-
removeTailSlash("/")
|
|
62
|
-
)
|
|
63
|
-
);
|
|
43
|
+
logger.warn("Expect get a string from `publicPath`, but receive `undefined`.");
|
|
44
|
+
await fs.writeFile(file, content.replace(/<%=\s*assetPrefix\s*%>/g, removeTailSlash("/")));
|
|
64
45
|
}
|
|
65
|
-
})
|
|
66
|
-
|
|
46
|
+
}));
|
|
47
|
+
}
|
|
67
48
|
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
49
|
+
};
|
|
50
|
+
};
|
|
70
51
|
function transformCopy(patterns) {
|
|
71
52
|
if (patterns) {
|
|
72
53
|
patterns.map((value) => {
|
|
@@ -98,6 +79,3 @@ function createConfigBuiltinCopy(options) {
|
|
|
98
79
|
}
|
|
99
80
|
];
|
|
100
81
|
}
|
|
101
|
-
export {
|
|
102
|
-
builderPluginAdpaterCopy
|
|
103
|
-
};
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { builderRspackProvider } from "@modern-js/builder-rspack-provider";
|
|
2
2
|
import { generateBuilder } from "../generator";
|
|
3
3
|
import { builderPluginAdpaterCopy } from "./adapterCopy";
|
|
4
|
-
function createRspackBuilderForModern(options) {
|
|
4
|
+
export function createRspackBuilderForModern(options) {
|
|
5
5
|
return generateBuilder(options, builderRspackProvider, {
|
|
6
6
|
modifyBuilderInstance(builder) {
|
|
7
|
-
builder.addPlugins([
|
|
7
|
+
builder.addPlugins([
|
|
8
|
+
builderPluginAdpaterCopy(options)
|
|
9
|
+
]);
|
|
8
10
|
}
|
|
9
11
|
});
|
|
10
12
|
}
|
|
11
|
-
export {
|
|
12
|
-
createRspackBuilderForModern
|
|
13
|
-
};
|