@modern-js/app-tools 2.35.1 → 2.36.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/analyze/constants.js +68 -75
- package/dist/cjs/analyze/generateCode.js +74 -57
- package/dist/cjs/analyze/getBundleEntry.js +53 -27
- package/dist/cjs/analyze/getClientRoutes/getRoutes.js +63 -37
- package/dist/cjs/analyze/getClientRoutes/getRoutesLegacy.js +63 -37
- package/dist/cjs/analyze/getClientRoutes/index.js +27 -17
- package/dist/cjs/analyze/getClientRoutes/utils.js +47 -30
- package/dist/cjs/analyze/getFileSystemEntry.js +58 -32
- package/dist/cjs/analyze/getHtmlTemplate.js +45 -20
- package/dist/cjs/analyze/getServerRoutes.js +55 -29
- package/dist/cjs/analyze/index.js +81 -61
- package/dist/cjs/analyze/isDefaultExportFunction.js +42 -17
- package/dist/cjs/analyze/makeLegalIdentifier.js +24 -7
- package/dist/cjs/analyze/nestedRoutes.js +111 -65
- package/dist/cjs/analyze/templates.js +135 -53
- package/dist/cjs/analyze/utils.js +101 -67
- package/dist/cjs/builder/builder-rspack/adapterCopy.js +60 -30
- package/dist/cjs/builder/builder-rspack/index.js +29 -12
- package/dist/cjs/builder/builder-webpack/adapterModern.js +26 -11
- package/dist/cjs/builder/builder-webpack/createCopyPattern.js +30 -20
- package/dist/cjs/builder/builder-webpack/index.js +40 -14
- package/dist/cjs/builder/generator/createBuilderOptions.js +24 -7
- package/dist/cjs/builder/generator/createBuilderProviderConfig.js +26 -9
- package/dist/cjs/builder/generator/getBuilderTargets.js +27 -10
- package/dist/cjs/builder/generator/index.js +44 -18
- package/dist/cjs/builder/index.js +39 -13
- package/dist/cjs/builder/shared/builderPlugins/adapterBasic.js +36 -7
- package/dist/cjs/builder/shared/builderPlugins/adapterHtml.js +36 -19
- package/dist/cjs/builder/shared/builderPlugins/adapterSSR.js +47 -21
- package/dist/cjs/builder/shared/builderPlugins/index.js +24 -6
- package/dist/cjs/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +27 -10
- package/dist/cjs/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +29 -12
- package/dist/cjs/builder/shared/bundlerPlugins/RouterPlugin.js +42 -25
- package/dist/cjs/builder/shared/bundlerPlugins/index.js +24 -6
- package/dist/cjs/builder/shared/createCopyInfo.js +38 -12
- package/dist/cjs/builder/shared/index.js +24 -6
- package/dist/cjs/builder/shared/loaders/serverModuleLoader.js +21 -8
- package/dist/cjs/builder/shared/types.js +15 -3
- package/dist/cjs/commands/build.js +33 -16
- package/dist/cjs/commands/deploy.js +24 -7
- package/dist/cjs/commands/dev.js +40 -23
- package/dist/cjs/commands/index.js +24 -6
- package/dist/cjs/commands/inspect.js +26 -9
- package/dist/cjs/commands/serve.js +48 -22
- package/dist/cjs/config/default.js +33 -23
- package/dist/cjs/config/index.js +24 -6
- package/dist/cjs/config/initialize/index.js +27 -10
- package/dist/cjs/config/initialize/inits.js +40 -37
- package/dist/cjs/config/legacy/createHtmlConfig.js +24 -7
- package/dist/cjs/config/legacy/createOutputConfig.js +24 -7
- package/dist/cjs/config/legacy/createSourceConfig.js +24 -7
- package/dist/cjs/config/legacy/createToolsConfig.js +24 -7
- package/dist/cjs/config/legacy/index.js +34 -23
- package/dist/cjs/defineConfig.js +25 -15
- package/dist/cjs/exports/server.js +25 -8
- package/dist/cjs/hooks.js +50 -33
- package/dist/cjs/index.js +95 -80
- package/dist/cjs/initialize/index.js +30 -17
- package/dist/cjs/locale/en.js +24 -7
- package/dist/cjs/locale/index.js +31 -21
- package/dist/cjs/locale/zh.js +24 -7
- package/dist/cjs/schema/Schema.js +28 -11
- package/dist/cjs/schema/index.js +40 -21
- package/dist/cjs/schema/legacy.js +30 -17
- package/dist/cjs/types/config/deploy.js +15 -3
- package/dist/cjs/types/config/dev.js +15 -3
- package/dist/cjs/types/config/experiments.js +15 -3
- package/dist/cjs/types/config/html.js +15 -3
- package/dist/cjs/types/config/index.js +20 -4
- package/dist/cjs/types/config/output.js +15 -3
- package/dist/cjs/types/config/performance.js +15 -3
- package/dist/cjs/types/config/security.js +15 -3
- package/dist/cjs/types/config/source.js +15 -3
- package/dist/cjs/types/config/testing.js +15 -3
- package/dist/cjs/types/config/tools.js +15 -3
- package/dist/cjs/types/hooks.js +15 -3
- package/dist/cjs/types/index.js +24 -6
- package/dist/cjs/types/legacyConfig/deploy.js +15 -3
- package/dist/cjs/types/legacyConfig/dev.js +15 -3
- package/dist/cjs/types/legacyConfig/index.js +15 -3
- package/dist/cjs/types/legacyConfig/output.js +15 -3
- package/dist/cjs/types/legacyConfig/source.js +15 -3
- package/dist/cjs/types/legacyConfig/testing.js +15 -3
- package/dist/cjs/types/legacyConfig/tools.js +15 -3
- package/dist/cjs/types/utils.js +15 -3
- package/dist/cjs/utils/config.js +50 -33
- package/dist/cjs/utils/createServer.js +43 -26
- package/dist/cjs/utils/env.js +26 -9
- package/dist/cjs/utils/generateWatchFiles.js +41 -22
- package/dist/cjs/utils/getSelectedEntries.js +30 -13
- package/dist/cjs/utils/getServerInternalPlugins.js +24 -7
- package/dist/cjs/utils/printInstructions.js +27 -10
- package/dist/cjs/utils/restart.js +30 -13
- package/dist/cjs/utils/routes.js +37 -11
- package/dist/cjs/utils/types.js +15 -3
- package/dist/esm/analyze/constants.js +48 -22
- package/dist/esm/analyze/generateCode.js +38 -33
- package/dist/esm/analyze/getBundleEntry.js +4 -1
- package/dist/esm/analyze/getClientRoutes/getRoutes.js +12 -9
- package/dist/esm/analyze/getClientRoutes/getRoutesLegacy.js +12 -9
- package/dist/esm/analyze/getClientRoutes/index.js +6 -2
- package/dist/esm/analyze/getClientRoutes/utils.js +9 -4
- package/dist/esm/analyze/getFileSystemEntry.js +10 -7
- package/dist/esm/analyze/getHtmlTemplate.js +7 -4
- package/dist/esm/analyze/getServerRoutes.js +8 -5
- package/dist/esm/analyze/index.js +31 -30
- package/dist/esm/analyze/isDefaultExportFunction.js +4 -1
- package/dist/esm/analyze/makeLegalIdentifier.js +4 -1
- package/dist/esm/analyze/nestedRoutes.js +93 -30
- package/dist/esm/analyze/templates.js +121 -30
- package/dist/esm/analyze/utils.js +103 -18
- package/dist/esm/builder/builder-rspack/adapterCopy.js +16 -9
- package/dist/esm/builder/builder-rspack/index.js +4 -1
- package/dist/esm/builder/builder-webpack/adapterModern.js +4 -3
- package/dist/esm/builder/builder-webpack/createCopyPattern.js +8 -4
- package/dist/esm/builder/builder-webpack/index.js +4 -1
- package/dist/esm/builder/generator/createBuilderOptions.js +5 -2
- package/dist/esm/builder/generator/createBuilderProviderConfig.js +4 -1
- package/dist/esm/builder/generator/getBuilderTargets.js +4 -1
- package/dist/esm/builder/generator/index.js +5 -2
- package/dist/esm/builder/index.js +4 -1
- package/dist/esm/builder/shared/builderPlugins/adapterBasic.js +6 -1
- package/dist/esm/builder/shared/builderPlugins/adapterHtml.js +11 -8
- package/dist/esm/builder/shared/builderPlugins/adapterSSR.js +10 -7
- package/dist/esm/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +4 -1
- package/dist/esm/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +4 -1
- package/dist/esm/builder/shared/bundlerPlugins/RouterPlugin.js +7 -4
- package/dist/esm/builder/shared/createCopyInfo.js +7 -4
- package/dist/esm/builder/shared/loaders/serverModuleLoader.js +4 -1
- package/dist/esm/builder/shared/types.js +0 -1
- package/dist/esm/commands/build.js +6 -3
- package/dist/esm/commands/deploy.js +4 -1
- package/dist/esm/commands/dev.js +12 -9
- package/dist/esm/commands/inspect.js +4 -1
- package/dist/esm/commands/serve.js +7 -4
- package/dist/esm/config/default.js +12 -8
- package/dist/esm/config/initialize/index.js +4 -1
- package/dist/esm/config/initialize/inits.js +8 -19
- package/dist/esm/config/legacy/createHtmlConfig.js +17 -14
- package/dist/esm/config/legacy/createOutputConfig.js +19 -16
- package/dist/esm/config/legacy/createSourceConfig.js +14 -11
- package/dist/esm/config/legacy/createToolsConfig.js +18 -15
- package/dist/esm/config/legacy/index.js +21 -16
- package/dist/esm/defineConfig.js +6 -2
- package/dist/esm/exports/server.js +4 -1
- package/dist/esm/hooks.js +4 -1
- package/dist/esm/index.js +19 -11
- package/dist/esm/initialize/index.js +9 -6
- package/dist/esm/locale/en.js +4 -1
- package/dist/esm/locale/index.js +4 -1
- package/dist/esm/locale/zh.js +4 -1
- package/dist/esm/schema/Schema.js +6 -3
- package/dist/esm/schema/index.js +5 -2
- package/dist/esm/schema/legacy.js +4 -1
- package/dist/esm/types/config/deploy.js +0 -1
- package/dist/esm/types/config/dev.js +0 -1
- package/dist/esm/types/config/experiments.js +0 -1
- package/dist/esm/types/config/html.js +0 -1
- package/dist/esm/types/config/output.js +0 -1
- package/dist/esm/types/config/performance.js +0 -1
- package/dist/esm/types/config/security.js +0 -1
- package/dist/esm/types/config/source.js +0 -1
- package/dist/esm/types/config/testing.js +0 -1
- package/dist/esm/types/config/tools.js +0 -1
- package/dist/esm/types/hooks.js +0 -1
- package/dist/esm/types/legacyConfig/deploy.js +0 -1
- package/dist/esm/types/legacyConfig/dev.js +0 -1
- package/dist/esm/types/legacyConfig/index.js +0 -1
- package/dist/esm/types/legacyConfig/output.js +0 -1
- package/dist/esm/types/legacyConfig/source.js +0 -1
- package/dist/esm/types/legacyConfig/testing.js +0 -1
- package/dist/esm/types/legacyConfig/tools.js +0 -1
- package/dist/esm/types/utils.js +0 -1
- package/dist/esm/utils/config.js +12 -6
- package/dist/esm/utils/createServer.js +12 -5
- package/dist/esm/utils/env.js +4 -1
- package/dist/esm/utils/generateWatchFiles.js +6 -2
- package/dist/esm/utils/getSelectedEntries.js +4 -1
- package/dist/esm/utils/getServerInternalPlugins.js +5 -2
- package/dist/esm/utils/printInstructions.js +4 -1
- package/dist/esm/utils/restart.js +4 -1
- package/dist/esm/utils/routes.js +3 -1
- package/dist/esm/utils/types.js +0 -1
- package/dist/esm-node/analyze/constants.js +48 -22
- package/dist/esm-node/analyze/generateCode.js +8 -3
- package/dist/esm-node/analyze/getBundleEntry.js +4 -1
- package/dist/esm-node/analyze/getClientRoutes/getRoutes.js +4 -1
- package/dist/esm-node/analyze/getClientRoutes/getRoutesLegacy.js +4 -1
- package/dist/esm-node/analyze/getClientRoutes/index.js +6 -2
- package/dist/esm-node/analyze/getClientRoutes/utils.js +9 -4
- package/dist/esm-node/analyze/getFileSystemEntry.js +4 -1
- package/dist/esm-node/analyze/getHtmlTemplate.js +4 -1
- package/dist/esm-node/analyze/getServerRoutes.js +4 -1
- package/dist/esm-node/analyze/index.js +9 -8
- package/dist/esm-node/analyze/isDefaultExportFunction.js +4 -1
- package/dist/esm-node/analyze/makeLegalIdentifier.js +4 -1
- package/dist/esm-node/analyze/nestedRoutes.js +42 -9
- package/dist/esm-node/analyze/templates.js +93 -18
- package/dist/esm-node/analyze/utils.js +48 -16
- package/dist/esm-node/builder/builder-rspack/adapterCopy.js +18 -11
- package/dist/esm-node/builder/builder-rspack/index.js +4 -1
- package/dist/esm-node/builder/builder-webpack/adapterModern.js +4 -3
- package/dist/esm-node/builder/builder-webpack/createCopyPattern.js +6 -2
- package/dist/esm-node/builder/builder-webpack/index.js +4 -1
- package/dist/esm-node/builder/generator/createBuilderOptions.js +4 -1
- package/dist/esm-node/builder/generator/createBuilderProviderConfig.js +4 -1
- package/dist/esm-node/builder/generator/getBuilderTargets.js +4 -1
- package/dist/esm-node/builder/generator/index.js +4 -1
- package/dist/esm-node/builder/index.js +4 -1
- package/dist/esm-node/builder/shared/builderPlugins/adapterBasic.js +6 -1
- package/dist/esm-node/builder/shared/builderPlugins/adapterHtml.js +4 -1
- package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.js +4 -1
- package/dist/esm-node/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +4 -1
- package/dist/esm-node/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +4 -1
- package/dist/esm-node/builder/shared/bundlerPlugins/RouterPlugin.js +4 -1
- package/dist/esm-node/builder/shared/createCopyInfo.js +4 -1
- package/dist/esm-node/builder/shared/loaders/serverModuleLoader.js +4 -1
- package/dist/esm-node/builder/shared/types.js +0 -1
- package/dist/esm-node/commands/build.js +4 -1
- package/dist/esm-node/commands/deploy.js +4 -1
- package/dist/esm-node/commands/dev.js +4 -1
- package/dist/esm-node/commands/inspect.js +4 -1
- package/dist/esm-node/commands/serve.js +4 -1
- package/dist/esm-node/config/default.js +6 -2
- package/dist/esm-node/config/initialize/index.js +4 -1
- package/dist/esm-node/config/initialize/inits.js +8 -20
- package/dist/esm-node/config/legacy/createHtmlConfig.js +4 -1
- package/dist/esm-node/config/legacy/createOutputConfig.js +4 -1
- package/dist/esm-node/config/legacy/createSourceConfig.js +4 -1
- package/dist/esm-node/config/legacy/createToolsConfig.js +4 -1
- package/dist/esm-node/config/legacy/index.js +7 -2
- package/dist/esm-node/defineConfig.js +6 -2
- package/dist/esm-node/exports/server.js +4 -1
- package/dist/esm-node/hooks.js +4 -1
- package/dist/esm-node/index.js +14 -6
- package/dist/esm-node/initialize/index.js +4 -1
- package/dist/esm-node/locale/en.js +4 -1
- package/dist/esm-node/locale/index.js +4 -1
- package/dist/esm-node/locale/zh.js +4 -1
- package/dist/esm-node/schema/Schema.js +4 -1
- package/dist/esm-node/schema/index.js +5 -2
- package/dist/esm-node/schema/legacy.js +4 -1
- package/dist/esm-node/types/config/deploy.js +0 -1
- package/dist/esm-node/types/config/dev.js +0 -1
- package/dist/esm-node/types/config/experiments.js +0 -1
- package/dist/esm-node/types/config/html.js +0 -1
- package/dist/esm-node/types/config/output.js +0 -1
- package/dist/esm-node/types/config/performance.js +0 -1
- package/dist/esm-node/types/config/security.js +0 -1
- package/dist/esm-node/types/config/source.js +0 -1
- package/dist/esm-node/types/config/testing.js +0 -1
- package/dist/esm-node/types/config/tools.js +0 -1
- package/dist/esm-node/types/hooks.js +0 -1
- package/dist/esm-node/types/legacyConfig/deploy.js +0 -1
- package/dist/esm-node/types/legacyConfig/dev.js +0 -1
- package/dist/esm-node/types/legacyConfig/index.js +0 -1
- package/dist/esm-node/types/legacyConfig/output.js +0 -1
- package/dist/esm-node/types/legacyConfig/source.js +0 -1
- package/dist/esm-node/types/legacyConfig/testing.js +0 -1
- package/dist/esm-node/types/legacyConfig/tools.js +0 -1
- package/dist/esm-node/types/utils.js +0 -1
- package/dist/esm-node/utils/config.js +10 -4
- package/dist/esm-node/utils/createServer.js +12 -5
- package/dist/esm-node/utils/env.js +4 -1
- package/dist/esm-node/utils/generateWatchFiles.js +6 -2
- package/dist/esm-node/utils/getSelectedEntries.js +4 -1
- package/dist/esm-node/utils/getServerInternalPlugins.js +4 -1
- package/dist/esm-node/utils/printInstructions.js +4 -1
- package/dist/esm-node/utils/restart.js +4 -1
- package/dist/esm-node/utils/routes.js +3 -1
- package/dist/esm-node/utils/types.js +0 -1
- package/dist/types/analyze/constants.d.ts +1 -0
- package/dist/types/analyze/utils.d.ts +2 -1
- package/dist/types/types/config/index.d.ts +3 -2
- package/package.json +24 -24
@@ -2,7 +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
|
-
|
5
|
+
const index = ({ mountId, imports, renderFunction: renderFunction2, exportStatement }) => `
|
6
6
|
const IS_BROWSER = typeof window !== 'undefined' && window.name !== 'nodejs';
|
7
7
|
const IS_REACT18 = process.env.IS_REACT18 === 'true';
|
8
8
|
const MOUNT_ID = '${mountId}';
|
@@ -21,7 +21,7 @@ AppWrapper = render();
|
|
21
21
|
|
22
22
|
${exportStatement};
|
23
23
|
`;
|
24
|
-
|
24
|
+
const renderFunction = ({ plugins, customBootstrap, fileSystemRoutes: fileSystemRoutes2 }) => {
|
25
25
|
const bootstrap = "bootstrap(AppWrapper, MOUNT_ID, root, ReactDOM)";
|
26
26
|
return `
|
27
27
|
const finalAppConfig = {
|
@@ -48,7 +48,7 @@ export const renderFunction = ({ plugins, customBootstrap, fileSystemRoutes: fil
|
|
48
48
|
return AppWrapper
|
49
49
|
`;
|
50
50
|
};
|
51
|
-
|
51
|
+
const html = (partials) => `
|
52
52
|
<!DOCTYPE html>
|
53
53
|
<html>
|
54
54
|
<head>
|
@@ -71,8 +71,10 @@ export const html = (partials) => `
|
|
71
71
|
|
72
72
|
</html>
|
73
73
|
`;
|
74
|
-
|
74
|
+
const routesForServer = ({ routes }) => {
|
75
75
|
const loaders = [];
|
76
|
+
const actions = [];
|
77
|
+
const loadersMap = {};
|
76
78
|
const traverseRouteTree = (route) => {
|
77
79
|
let children;
|
78
80
|
if ("children" in route && route.children) {
|
@@ -80,15 +82,31 @@ export const routesForServer = ({ routes }) => {
|
|
80
82
|
children = route === null || route === void 0 ? void 0 : (_route_children = route.children) === null || _route_children === void 0 ? void 0 : _route_children.map(traverseRouteTree);
|
81
83
|
}
|
82
84
|
let loader;
|
85
|
+
let action;
|
83
86
|
if (route.type === "nested") {
|
84
|
-
if (route.loader) {
|
87
|
+
if (route.loader || route.data) {
|
85
88
|
loaders.push(route.loader);
|
86
|
-
|
89
|
+
const loaderId = loaders.length - 1;
|
90
|
+
loader = `loader_${loaderId}`;
|
91
|
+
const inline = Boolean(route.data);
|
92
|
+
loadersMap[loader] = {
|
93
|
+
loaderId,
|
94
|
+
routeId: route.id,
|
95
|
+
filePath: route.data || route.loader,
|
96
|
+
clientData: Boolean(route.clientData),
|
97
|
+
route,
|
98
|
+
inline
|
99
|
+
};
|
100
|
+
if (route.action) {
|
101
|
+
actions.push(route.action);
|
102
|
+
action = `action_${loaders.length - 1}`;
|
103
|
+
}
|
87
104
|
}
|
88
105
|
}
|
89
106
|
const finalRoute = {
|
90
107
|
...route,
|
91
108
|
loader,
|
109
|
+
action,
|
92
110
|
children
|
93
111
|
};
|
94
112
|
return finalRoute;
|
@@ -98,8 +116,14 @@ export const routesForServer = ({ routes }) => {
|
|
98
116
|
`;
|
99
117
|
for (const route of routes) {
|
100
118
|
if ("type" in route) {
|
119
|
+
const keywords = [
|
120
|
+
"loader",
|
121
|
+
"action"
|
122
|
+
];
|
123
|
+
const regs = keywords.map(createMatchReg);
|
101
124
|
const newRoute = traverseRouteTree(route);
|
102
|
-
|
125
|
+
const routeStr = JSON.stringify(newRoute, null, 2);
|
126
|
+
routesCode += regs.reduce((acc, reg) => acc.replace(reg, "$1$2"), routeStr).replace(/\\"/g, '"');
|
103
127
|
} else {
|
104
128
|
routesCode += `${JSON.stringify(route, null, 2)}`;
|
105
129
|
}
|
@@ -107,10 +131,20 @@ export const routesForServer = ({ routes }) => {
|
|
107
131
|
routesCode += `
|
108
132
|
];`;
|
109
133
|
let importLoadersCode = "";
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
134
|
+
for (const [key, loaderInfo] of Object.entries(loadersMap)) {
|
135
|
+
if (loaderInfo.inline) {
|
136
|
+
const { route } = loaderInfo;
|
137
|
+
if (route.action) {
|
138
|
+
importLoadersCode += `import { loader as ${key}, action as action_${loaderInfo.loaderId} } from "${slash(loaderInfo.filePath)}";
|
139
|
+
`;
|
140
|
+
} else {
|
141
|
+
importLoadersCode += `import { loader as ${key} } from "${slash(loaderInfo.filePath)}";
|
142
|
+
`;
|
143
|
+
}
|
144
|
+
} else {
|
145
|
+
importLoadersCode += `import ${key} from "${slash(loaderInfo.filePath)}";
|
146
|
+
`;
|
147
|
+
}
|
114
148
|
}
|
115
149
|
return `
|
116
150
|
${importLoadersCode}
|
@@ -118,7 +152,7 @@ export const routesForServer = ({ routes }) => {
|
|
118
152
|
`;
|
119
153
|
};
|
120
154
|
const createMatchReg = (keyword) => new RegExp(`("${keyword}":\\s)"([^,]+)"`, "g");
|
121
|
-
|
155
|
+
const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, entryName, internalDirectory, splitRouteChunks = true }) => {
|
122
156
|
const components = [];
|
123
157
|
const loadings = [];
|
124
158
|
const errors = [];
|
@@ -132,13 +166,13 @@ export const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, ent
|
|
132
166
|
import loadable, { lazy as loadableLazy } from "@modern-js/runtime/loadable"
|
133
167
|
`;
|
134
168
|
let rootLayoutCode = ``;
|
135
|
-
const getDataLoaderPath = (loaderId, clientData) => {
|
169
|
+
const getDataLoaderPath = ({ loaderId, clientData, action, inline, routeId }) => {
|
136
170
|
if (!ssrMode) {
|
137
171
|
return "";
|
138
172
|
}
|
139
173
|
const clientDataStr = clientData ? `&clientData=${clientData}` : "";
|
140
174
|
if (nestedRoutesEntry) {
|
141
|
-
return `?
|
175
|
+
return `?loaderId=${loaderId}${clientDataStr}&action=${action ? slash(action) : action}&inline=${inline}&routeId=${routeId}`;
|
142
176
|
}
|
143
177
|
return "";
|
144
178
|
};
|
@@ -151,6 +185,7 @@ export const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, ent
|
|
151
185
|
let loading;
|
152
186
|
let error;
|
153
187
|
let loader;
|
188
|
+
let action;
|
154
189
|
let config;
|
155
190
|
let component = "";
|
156
191
|
let lazyImport = null;
|
@@ -167,13 +202,19 @@ export const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, ent
|
|
167
202
|
loaders.push(route.loader);
|
168
203
|
const loaderId = loaders.length - 1;
|
169
204
|
loader = `loader_${loaderId}`;
|
205
|
+
const inline = Boolean(route.data);
|
170
206
|
loadersMap[loader] = {
|
207
|
+
loaderId,
|
171
208
|
routeId: route.id,
|
172
209
|
filePath: route.data || route.loader,
|
173
210
|
clientData: Boolean(route.clientData),
|
174
|
-
|
211
|
+
route,
|
212
|
+
inline
|
175
213
|
};
|
176
214
|
loader = `loader_${loaderId}`;
|
215
|
+
if (route.action) {
|
216
|
+
action = `action_${loaderId}`;
|
217
|
+
}
|
177
218
|
}
|
178
219
|
if (typeof route.config === "string") {
|
179
220
|
configs.push(route.config);
|
@@ -212,6 +253,7 @@ export const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, ent
|
|
212
253
|
lazyImport,
|
213
254
|
loading,
|
214
255
|
loader,
|
256
|
+
action,
|
215
257
|
config,
|
216
258
|
error,
|
217
259
|
children
|
@@ -232,6 +274,7 @@ export const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, ent
|
|
232
274
|
"component",
|
233
275
|
"lazyImport",
|
234
276
|
"loader",
|
277
|
+
"action",
|
235
278
|
"loading",
|
236
279
|
"error",
|
237
280
|
"config"
|
@@ -272,10 +315,34 @@ export const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, ent
|
|
272
315
|
let importLoadersCode = "";
|
273
316
|
for (const [key, loaderInfo] of Object.entries(loadersMap)) {
|
274
317
|
if (loaderInfo.inline) {
|
275
|
-
|
318
|
+
const { route } = loaderInfo;
|
319
|
+
if (route.action) {
|
320
|
+
importLoadersCode += `import { loader as ${key}, action as action_${loaderInfo.loaderId} } from "${slash(loaderInfo.filePath)}${getDataLoaderPath({
|
321
|
+
loaderId: key,
|
322
|
+
clientData: loaderInfo.clientData,
|
323
|
+
action: route.action,
|
324
|
+
inline: loaderInfo.inline,
|
325
|
+
routeId: loaderInfo.routeId
|
326
|
+
})}";
|
276
327
|
`;
|
328
|
+
} else {
|
329
|
+
importLoadersCode += `import { loader as ${key} } from "${slash(loaderInfo.filePath)}${getDataLoaderPath({
|
330
|
+
loaderId: key,
|
331
|
+
clientData: loaderInfo.clientData,
|
332
|
+
action: false,
|
333
|
+
inline: loaderInfo.inline,
|
334
|
+
routeId: route.id
|
335
|
+
})}";
|
336
|
+
`;
|
337
|
+
}
|
277
338
|
} else {
|
278
|
-
importLoadersCode += `import ${key} from "${slash(loaderInfo.filePath)}${getDataLoaderPath(
|
339
|
+
importLoadersCode += `import ${key} from "${slash(loaderInfo.filePath)}${getDataLoaderPath({
|
340
|
+
loaderId: key,
|
341
|
+
clientData: loaderInfo.clientData,
|
342
|
+
action: false,
|
343
|
+
inline: loaderInfo.inline,
|
344
|
+
routeId: loaderInfo.routeId
|
345
|
+
})}";
|
279
346
|
`;
|
280
347
|
}
|
281
348
|
}
|
@@ -297,7 +364,7 @@ export const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, ent
|
|
297
364
|
${routeComponentsCode}
|
298
365
|
`;
|
299
366
|
};
|
300
|
-
|
367
|
+
function ssrLoaderCombinedModule(entrypoints, entrypoint, config, appContext) {
|
301
368
|
const { entryName, isMainEntry } = entrypoint;
|
302
369
|
const { packageName, internalDirectory } = appContext;
|
303
370
|
const ssr = getEntryOptions(entryName, isMainEntry, config.server.ssr, config.server.ssrByEntries, packageName);
|
@@ -310,3 +377,11 @@ export function ssrLoaderCombinedModule(entrypoints, entrypoint, config, appCont
|
|
310
377
|
}
|
311
378
|
return null;
|
312
379
|
}
|
380
|
+
export {
|
381
|
+
fileSystemRoutes,
|
382
|
+
html,
|
383
|
+
index,
|
384
|
+
renderFunction,
|
385
|
+
routesForServer,
|
386
|
+
ssrLoaderCombinedModule
|
387
|
+
};
|
@@ -3,8 +3,8 @@ import path from "path";
|
|
3
3
|
import { isReact18, normalizeToPosixPath, fs as fse, getCommand } from "@modern-js/utils";
|
4
4
|
import { transform } from "esbuild";
|
5
5
|
import { parse } from "es-module-lexer";
|
6
|
-
import { FILE_SYSTEM_ROUTES_FILE_NAME, JS_EXTENSIONS, LOADER_EXPORT_NAME } from "./constants";
|
7
|
-
|
6
|
+
import { ACTION_EXPORT_NAME, FILE_SYSTEM_ROUTES_FILE_NAME, JS_EXTENSIONS, LOADER_EXPORT_NAME } from "./constants";
|
7
|
+
const walkDirectory = (dir) => fs.readdirSync(dir).reduce((previous, filename) => {
|
8
8
|
const filePath = path.join(dir, filename);
|
9
9
|
if (fs.statSync(filePath).isDirectory()) {
|
10
10
|
return [
|
@@ -18,7 +18,7 @@ export const walkDirectory = (dir) => fs.readdirSync(dir).reduce((previous, file
|
|
18
18
|
];
|
19
19
|
}
|
20
20
|
}, []);
|
21
|
-
|
21
|
+
const getDefaultImports = ({ entrypoint, srcDirectory, internalSrcAlias, internalDirAlias, internalDirectory }) => {
|
22
22
|
const { entryName, fileSystemRoutes, customBootstrap, entry } = entrypoint;
|
23
23
|
const imports = [
|
24
24
|
{
|
@@ -91,7 +91,7 @@ export const getDefaultImports = ({ entrypoint, srcDirectory, internalSrcAlias,
|
|
91
91
|
}
|
92
92
|
return imports;
|
93
93
|
};
|
94
|
-
|
94
|
+
const isPageComponentFile = (filePath) => {
|
95
95
|
if (/\.(d|test|spec|e2e)\.(js|jsx|ts|tsx)$/.test(filePath)) {
|
96
96
|
return false;
|
97
97
|
}
|
@@ -105,14 +105,14 @@ export const isPageComponentFile = (filePath) => {
|
|
105
105
|
}
|
106
106
|
return false;
|
107
107
|
};
|
108
|
-
|
108
|
+
const replaceWithAlias = (base, filePath, alias) => {
|
109
109
|
if (filePath.includes(base)) {
|
110
110
|
return normalizeToPosixPath(path.join(alias, path.relative(base, filePath)));
|
111
111
|
} else {
|
112
112
|
return filePath;
|
113
113
|
}
|
114
114
|
};
|
115
|
-
|
115
|
+
const parseModule = async ({ source, filename }) => {
|
116
116
|
let content = source;
|
117
117
|
if (JS_EXTENSIONS.some((ext) => filename.endsWith(ext))) {
|
118
118
|
const result = await transform(content, {
|
@@ -123,21 +123,41 @@ export const parseModule = async ({ source, filename }) => {
|
|
123
123
|
}
|
124
124
|
return await parse(content);
|
125
125
|
};
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
126
|
+
const hasLoader = async (filename, source) => {
|
127
|
+
let content = source;
|
128
|
+
if (!source) {
|
129
|
+
content = (await fse.readFile(filename, "utf-8")).toString();
|
130
|
+
}
|
131
|
+
if (content) {
|
132
|
+
const [, moduleExports] = await parseModule({
|
133
|
+
source: content.toString(),
|
134
|
+
filename
|
135
|
+
});
|
136
|
+
return moduleExports.some((e) => e.n === LOADER_EXPORT_NAME);
|
137
|
+
}
|
138
|
+
return false;
|
139
|
+
};
|
140
|
+
const hasAction = async (filename, source) => {
|
141
|
+
let content = source;
|
142
|
+
if (!source) {
|
143
|
+
content = (await fse.readFile(filename, "utf-8")).toString();
|
144
|
+
}
|
145
|
+
if (content) {
|
146
|
+
const [, moduleExports] = await parseModule({
|
147
|
+
source: content.toString(),
|
148
|
+
filename
|
149
|
+
});
|
150
|
+
return moduleExports.some((e) => e.n === ACTION_EXPORT_NAME);
|
151
|
+
}
|
152
|
+
return false;
|
133
153
|
};
|
134
|
-
|
154
|
+
const getServerLoadersFile = (internalDirectory, entryName) => {
|
135
155
|
return path.join(internalDirectory, entryName, "route-server-loaders.js");
|
136
156
|
};
|
137
|
-
|
157
|
+
const getServerCombinedModueFile = (internalDirectory, entryName) => {
|
138
158
|
return path.join(internalDirectory, entryName, "server-loader-combined.js");
|
139
159
|
};
|
140
|
-
|
160
|
+
const checkIsBuildCommands = () => {
|
141
161
|
const buildCommands = [
|
142
162
|
"dev",
|
143
163
|
"start",
|
@@ -149,3 +169,15 @@ export const checkIsBuildCommands = () => {
|
|
149
169
|
const command = getCommand();
|
150
170
|
return buildCommands.includes(command);
|
151
171
|
};
|
172
|
+
export {
|
173
|
+
checkIsBuildCommands,
|
174
|
+
getDefaultImports,
|
175
|
+
getServerCombinedModueFile,
|
176
|
+
getServerLoadersFile,
|
177
|
+
hasAction,
|
178
|
+
hasLoader,
|
179
|
+
isPageComponentFile,
|
180
|
+
parseModule,
|
181
|
+
replaceWithAlias,
|
182
|
+
walkDirectory
|
183
|
+
};
|
@@ -2,21 +2,25 @@ 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
|
-
|
5
|
+
const builderPluginAdpaterCopy = (options) => ({
|
6
6
|
name: "builder-plugin-adapter-rspack-copy",
|
7
7
|
setup(api) {
|
8
8
|
let publicPath;
|
9
|
+
api.modifyBundlerChain((chain, { CHAIN_ID }) => {
|
10
|
+
chain.plugin(CHAIN_ID.PLUGIN.COPY).tap((args) => {
|
11
|
+
var _args_;
|
12
|
+
return [
|
13
|
+
{
|
14
|
+
patterns: [
|
15
|
+
...((_args_ = args[0]) === null || _args_ === void 0 ? void 0 : _args_.patterns) || [],
|
16
|
+
...createConfigBuiltinCopy(options)
|
17
|
+
]
|
18
|
+
}
|
19
|
+
];
|
20
|
+
});
|
21
|
+
});
|
9
22
|
api.modifyRspackConfig((config) => {
|
10
|
-
var
|
11
|
-
config.builtins = {
|
12
|
-
...config.builtins || {},
|
13
|
-
copy: {
|
14
|
-
patterns: [
|
15
|
-
...((_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) || [],
|
16
|
-
...createConfigBuiltinCopy(options)
|
17
|
-
]
|
18
|
-
}
|
19
|
-
};
|
23
|
+
var _config_output;
|
20
24
|
publicPath = (_config_output = config.output) === null || _config_output === void 0 ? void 0 : _config_output.publicPath;
|
21
25
|
});
|
22
26
|
api.onDevCompileDone(async () => {
|
@@ -58,3 +62,6 @@ function createConfigBuiltinCopy(options) {
|
|
58
62
|
}
|
59
63
|
];
|
60
64
|
}
|
65
|
+
export {
|
66
|
+
builderPluginAdpaterCopy
|
67
|
+
};
|
@@ -1,10 +1,13 @@
|
|
1
1
|
import { builderRspackProvider } from "@modern-js/builder-rspack-provider";
|
2
2
|
import { generateBuilder } from "../generator";
|
3
3
|
import { builderPluginAdpaterCopy } from "./adapterCopy";
|
4
|
-
|
4
|
+
async function createRspackBuilderForModern(options) {
|
5
5
|
const builder = await generateBuilder(options, builderRspackProvider);
|
6
6
|
builder.addPlugins([
|
7
7
|
builderPluginAdpaterCopy(options)
|
8
8
|
]);
|
9
9
|
return builder;
|
10
10
|
}
|
11
|
+
export {
|
12
|
+
createRspackBuilderForModern
|
13
|
+
};
|
@@ -1,11 +1,9 @@
|
|
1
|
-
import { join } from "path";
|
2
1
|
import { createPublicPattern } from "./createCopyPattern";
|
3
|
-
|
2
|
+
const builderPluginAdapterModern = (options) => ({
|
4
3
|
name: "builder-plugin-adapter-modern",
|
5
4
|
setup(api) {
|
6
5
|
const { normalizedConfig: modernConfig, appContext } = options;
|
7
6
|
api.modifyWebpackChain((chain, { CHAIN_ID }) => {
|
8
|
-
chain.resolve.modules.add("node_modules").add(join(api.context.rootPath, "node_modules"));
|
9
7
|
if (chain.plugins.has(CHAIN_ID.PLUGIN.COPY)) {
|
10
8
|
const defaultCopyPattern = createPublicPattern(appContext, modernConfig, chain);
|
11
9
|
chain.plugin(CHAIN_ID.PLUGIN.COPY).tap((args) => {
|
@@ -23,3 +21,6 @@ export const builderPluginAdapterModern = (options) => ({
|
|
23
21
|
});
|
24
22
|
}
|
25
23
|
});
|
24
|
+
export {
|
25
|
+
builderPluginAdapterModern
|
26
|
+
};
|
@@ -7,7 +7,7 @@ const info = (file) => ({
|
|
7
7
|
// ref: https://github.com/webpack-contrib/copy-webpack-plugin#info
|
8
8
|
minimized: minifiedJsRexExp.test(file.sourceFilename)
|
9
9
|
});
|
10
|
-
|
10
|
+
function createPublicPattern(appContext, config, chain) {
|
11
11
|
const { publicDir } = createCopyInfo(appContext, config);
|
12
12
|
return {
|
13
13
|
info,
|
@@ -24,7 +24,7 @@ export function createPublicPattern(appContext, config, chain) {
|
|
24
24
|
}
|
25
25
|
};
|
26
26
|
}
|
27
|
-
|
27
|
+
function createUploadPattern(appContext, config) {
|
28
28
|
const { uploadDir } = createCopyInfo(appContext, config);
|
29
29
|
return {
|
30
30
|
info,
|
@@ -34,3 +34,7 @@ export function createUploadPattern(appContext, config) {
|
|
34
34
|
noErrorOnMissing: true
|
35
35
|
};
|
36
36
|
}
|
37
|
+
export {
|
38
|
+
createPublicPattern,
|
39
|
+
createUploadPattern
|
40
|
+
};
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { builderWebpackProvider } from "@modern-js/builder-webpack-provider";
|
2
2
|
import { generateBuilder } from "../generator";
|
3
3
|
import { builderPluginAdapterModern } from "./adapterModern";
|
4
|
-
|
4
|
+
async function createWebpackBuilderForModern(options) {
|
5
5
|
const builder = await generateBuilder(options, builderWebpackProvider);
|
6
6
|
const { normalizedConfig } = options;
|
7
7
|
if (normalizedConfig.tools.esbuild) {
|
@@ -16,3 +16,6 @@ export async function createWebpackBuilderForModern(options) {
|
|
16
16
|
]);
|
17
17
|
return builder;
|
18
18
|
}
|
19
|
+
export {
|
20
|
+
createWebpackBuilderForModern
|
21
|
+
};
|
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
function createBuilderOptions(target, appContext) {
|
2
2
|
const entries = {};
|
3
3
|
const { entrypoints = [], checkedEntries } = appContext;
|
4
4
|
for (const { entryName, internalEntry, entry } of entrypoints) {
|
@@ -22,3 +22,6 @@ export function createBuilderOptions(target, appContext) {
|
|
22
22
|
framework: appContext.metaName
|
23
23
|
};
|
24
24
|
}
|
25
|
+
export {
|
26
|
+
createBuilderOptions
|
27
|
+
};
|
@@ -12,7 +12,7 @@ function modifyOutputConfig(config, appContext) {
|
|
12
12
|
copy: builderCopy
|
13
13
|
};
|
14
14
|
}
|
15
|
-
|
15
|
+
function createBuilderProviderConfig(resolveConfig, appContext) {
|
16
16
|
const htmlConfig = {
|
17
17
|
...resolveConfig.html
|
18
18
|
};
|
@@ -38,3 +38,6 @@ export function createBuilderProviderConfig(resolveConfig, appContext) {
|
|
38
38
|
modifyOutputConfig(config, appContext);
|
39
39
|
return config;
|
40
40
|
}
|
41
|
+
export {
|
42
|
+
createBuilderProviderConfig
|
43
|
+
};
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { isProd, isServiceWorker, isSSR, isUseSSRBundle } from "@modern-js/utils";
|
2
|
-
|
2
|
+
function getBuilderTargets(normalizedConfig) {
|
3
3
|
const targets = [
|
4
4
|
"web"
|
5
5
|
];
|
@@ -13,3 +13,6 @@ export function getBuilderTargets(normalizedConfig) {
|
|
13
13
|
}
|
14
14
|
return targets;
|
15
15
|
}
|
16
|
+
export {
|
17
|
+
getBuilderTargets
|
18
|
+
};
|
@@ -2,7 +2,7 @@ import { createBuilder } from "@modern-js/builder";
|
|
2
2
|
import { createBuilderProviderConfig } from "./createBuilderProviderConfig";
|
3
3
|
import { getBuilderTargets } from "./getBuilderTargets";
|
4
4
|
import { createBuilderOptions } from "./createBuilderOptions";
|
5
|
-
|
5
|
+
async function generateBuilder(options, generateProvider) {
|
6
6
|
const { normalizedConfig, appContext } = options;
|
7
7
|
const builderConfig = createBuilderProviderConfig(normalizedConfig, appContext);
|
8
8
|
const provider = generateProvider({
|
@@ -29,3 +29,6 @@ async function applyBuilderPlugins(builder, options) {
|
|
29
29
|
]);
|
30
30
|
}
|
31
31
|
}
|
32
|
+
export {
|
33
|
+
generateBuilder
|
34
|
+
};
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { logger } from "@modern-js/utils";
|
2
|
-
|
2
|
+
async function createBuilderGenerator(bundler) {
|
3
3
|
if (bundler === "rspack") {
|
4
4
|
try {
|
5
5
|
const { createRspackBuilderForModern } = await import("./builder-rspack");
|
@@ -14,3 +14,6 @@ export async function createBuilderGenerator(bundler) {
|
|
14
14
|
const { createWebpackBuilderForModern } = await import("./builder-webpack");
|
15
15
|
return createWebpackBuilderForModern;
|
16
16
|
}
|
17
|
+
export {
|
18
|
+
createBuilderGenerator
|
19
|
+
};
|
@@ -1,4 +1,5 @@
|
|
1
|
-
|
1
|
+
import path from "path";
|
2
|
+
const builderPluginAdapterBasic = () => ({
|
2
3
|
name: "builder-plugin-adapter-modern-basic",
|
3
4
|
setup(api) {
|
4
5
|
api.modifyBundlerChain((chain, { target, CHAIN_ID }) => {
|
@@ -21,6 +22,7 @@ export const builderPluginAdapterBasic = () => ({
|
|
21
22
|
chain.module.rule(CHAIN_ID.RULE.JS).exclude.add(bareServerModuleReg);
|
22
23
|
chain.module.rule("bare-server-module").test(bareServerModuleReg).use("server-module-loader").loader(require.resolve("../loaders/serverModuleLoader"));
|
23
24
|
}
|
25
|
+
chain.resolve.modules.add("node_modules").add(path.join(api.context.rootPath, "node_modules"));
|
24
26
|
});
|
25
27
|
}
|
26
28
|
});
|
@@ -50,3 +52,6 @@ function applyNodeCompat(target, chain) {
|
|
50
52
|
}
|
51
53
|
}
|
52
54
|
}
|
55
|
+
export {
|
56
|
+
builderPluginAdapterBasic
|
57
|
+
};
|
@@ -2,7 +2,7 @@ import { isHtmlDisabled, createVirtualModule } from "@modern-js/builder-shared";
|
|
2
2
|
import { MAIN_ENTRY_NAME, getEntryOptions, removeTailSlash } from "@modern-js/utils";
|
3
3
|
import { template as lodashTemplate } from "@modern-js/utils/lodash";
|
4
4
|
import { BottomTemplatePlugin } from "../bundlerPlugins";
|
5
|
-
|
5
|
+
const builderPluginAdapterHtml = (options) => ({
|
6
6
|
name: "builder-plugin-adapter-modern-html",
|
7
7
|
setup(api) {
|
8
8
|
api.modifyBundlerChain(async (chain, { CHAIN_ID, target, HtmlPlugin: HtmlBundlerPlugin }) => {
|
@@ -54,3 +54,6 @@ function applyBottomHtmlPlugin({ api, chain, options, CHAIN_ID, HtmlBundlerPlugi
|
|
54
54
|
HtmlBundlerPlugin
|
55
55
|
]);
|
56
56
|
}
|
57
|
+
export {
|
58
|
+
builderPluginAdapterHtml
|
59
|
+
};
|
@@ -3,7 +3,7 @@ import { isHtmlDisabled, mergeBuilderConfig } from "@modern-js/builder-shared";
|
|
3
3
|
import { isSSR, fs } from "@modern-js/utils";
|
4
4
|
import { HtmlAsyncChunkPlugin, RouterPlugin } from "../bundlerPlugins";
|
5
5
|
import { getServerCombinedModueFile } from "../../../analyze/utils";
|
6
|
-
|
6
|
+
const builderPluginAdapterSSR = (options) => ({
|
7
7
|
name: "builder-plugin-adapter-modern-ssr",
|
8
8
|
setup(api) {
|
9
9
|
const { normalizedConfig } = options;
|
@@ -144,3 +144,6 @@ function applySSRDataLoader(chain, options) {
|
|
144
144
|
const reg = new RegExp(`${absolutePath}.*\\.(loader|data|data.client)\\.[t|j]sx?$`);
|
145
145
|
chain.module.rule("ssr-data-loader").test(reg).use("data-loader").loader(require.resolve("@modern-js/plugin-data-loader/loader")).end();
|
146
146
|
}
|
147
|
+
export {
|
148
|
+
builderPluginAdapterSSR
|
149
|
+
};
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { _ as _define_property } from "@swc/helpers/_/_define_property";
|
2
|
-
|
2
|
+
class HtmlAsyncChunkPlugin {
|
3
3
|
apply(compiler) {
|
4
4
|
compiler.hooks.compilation.tap(this.name, (compilation) => {
|
5
5
|
const hooks = this.htmlWebpackPlugin.getHooks(compilation);
|
@@ -28,3 +28,6 @@ export class HtmlAsyncChunkPlugin {
|
|
28
28
|
this.htmlWebpackPlugin = htmlWebpackPlugin;
|
29
29
|
}
|
30
30
|
}
|
31
|
+
export {
|
32
|
+
HtmlAsyncChunkPlugin
|
33
|
+
};
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { _ as _define_property } from "@swc/helpers/_/_define_property";
|
2
|
-
|
2
|
+
class BottomTemplatePlugin {
|
3
3
|
apply(compiler) {
|
4
4
|
compiler.hooks.compilation.tap(this.name, (compilation) => {
|
5
5
|
this.htmlWebpackPlugin.getHooks(compilation).beforeEmit.tap(this.name, (data) => {
|
@@ -29,3 +29,6 @@ ${match}`);
|
|
29
29
|
this.name = "bottom-template";
|
30
30
|
}
|
31
31
|
}
|
32
|
+
export {
|
33
|
+
BottomTemplatePlugin
|
34
|
+
};
|
@@ -7,7 +7,7 @@ const PLUGIN_NAME = "ModernjsRoutePlugin";
|
|
7
7
|
const generateContentHash = (content) => {
|
8
8
|
return createHash("md5").update(content).digest("hex").slice(0, 8);
|
9
9
|
};
|
10
|
-
|
10
|
+
class RouterPlugin {
|
11
11
|
isTargetNodeOrWebWorker(target) {
|
12
12
|
if (target === "node" || Array.isArray(target) && target.includes("node")) {
|
13
13
|
return true;
|
@@ -208,3 +208,6 @@ export class RouterPlugin {
|
|
208
208
|
this.nonce = nonce;
|
209
209
|
}
|
210
210
|
}
|
211
|
+
export {
|
212
|
+
RouterPlugin
|
213
|
+
};
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import path from "path";
|
2
|
-
|
2
|
+
function createCopyInfo(appContext, config) {
|
3
3
|
const configDir = path.resolve(appContext.appDirectory, config.source.configDir || "./config");
|
4
4
|
const uploadDir = path.posix.join(configDir.replace(/\\/g, "/"), "upload");
|
5
5
|
const publicDir = path.posix.join(configDir.replace(/\\/g, "/"), "public");
|
@@ -9,3 +9,6 @@ export function createCopyInfo(appContext, config) {
|
|
9
9
|
publicDir
|
10
10
|
};
|
11
11
|
}
|
12
|
+
export {
|
13
|
+
createCopyInfo
|
14
|
+
};
|