@modern-js/app-tools 2.4.0 → 3.0.0-beta.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 +31 -0
- package/dist/js/modern/analyze/getServerRoutes.js +5 -2
- package/dist/js/modern/analyze/index.js +6 -2
- package/dist/js/modern/builder/builder-webpack/webpackPlugins/RouterPlugin.js +3 -0
- package/dist/js/modern/builder/generator/getBuilderTargets.js +10 -1
- package/dist/js/modern/builder/shared/builderPlugins/adapterModern.js +23 -7
- package/dist/js/node/analyze/getServerRoutes.js +3 -1
- package/dist/js/node/analyze/index.js +6 -2
- package/dist/js/node/builder/builder-webpack/webpackPlugins/RouterPlugin.js +3 -0
- package/dist/js/node/builder/generator/getBuilderTargets.js +4 -0
- package/dist/js/node/builder/shared/builderPlugins/adapterModern.js +23 -7
- package/dist/js/treeshaking/analyze/generateCode.js +14 -14
- package/dist/js/treeshaking/analyze/getBundleEntry.js +2 -2
- package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +1 -1
- package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +1 -1
- package/dist/js/treeshaking/analyze/getFileSystemEntry.js +1 -1
- package/dist/js/treeshaking/analyze/getServerRoutes.js +8 -6
- package/dist/js/treeshaking/analyze/index.js +8 -8
- package/dist/js/treeshaking/analyze/nestedRoutes.js +5 -5
- package/dist/js/treeshaking/analyze/templates.js +6 -6
- package/dist/js/treeshaking/analyze/utils.js +3 -3
- package/dist/js/treeshaking/builder/builder-webpack/builderPlugins/compatModern.js +4 -4
- package/dist/js/treeshaking/builder/builder-webpack/index.js +2 -2
- package/dist/js/treeshaking/builder/builder-webpack/webpackPlugins/RouterPlugin.js +5 -2
- package/dist/js/treeshaking/builder/generator/createBuilderOptions.js +2 -2
- package/dist/js/treeshaking/builder/generator/getBuilderTargets.js +5 -1
- package/dist/js/treeshaking/builder/generator/index.js +2 -2
- package/dist/js/treeshaking/builder/shared/builderPlugins/adapterModern.js +62 -13
- package/dist/js/treeshaking/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +2 -2
- package/dist/js/treeshaking/commands/dev.js +2 -2
- package/dist/js/treeshaking/commands/serve.js +2 -2
- package/dist/js/treeshaking/config/initialize/inits.js +2 -2
- package/dist/js/treeshaking/config/legacy/createHtmlConfig.js +1 -1
- package/dist/js/treeshaking/config/legacy/createOutputConfig.js +1 -1
- package/dist/js/treeshaking/config/legacy/createSourceConfig.js +1 -1
- package/dist/js/treeshaking/config/legacy/createToolsConfig.js +1 -1
- package/dist/js/treeshaking/initialize/index.js +2 -2
- package/dist/js/treeshaking/utils/config.js +2 -2
- package/dist/js/treeshaking/utils/getServerInternalPlugins.js +2 -2
- package/dist/types/types/hooks.d.ts +5 -4
- package/dist/types/types/index.d.ts +3 -1
- package/package.json +20 -20
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,36 @@
|
|
1
1
|
# @modern-js/app-tools
|
2
2
|
|
3
|
+
## 3.0.0-beta.0
|
4
|
+
|
5
|
+
### Patch Changes
|
6
|
+
|
7
|
+
- 840142c: fix: the `@modern-js/app-tools` hooks should set `webpack` as default type.
|
8
|
+
fix: `@modern-js/app-tools` hooks 应该将 'webpack' 设置为默认类型
|
9
|
+
- 11c053b: feat: ssr support deploy worker
|
10
|
+
|
11
|
+
feat: ssr 支持边缘部署
|
12
|
+
|
13
|
+
- Updated dependencies [c4c10e7]
|
14
|
+
- Updated dependencies [84c21f9]
|
15
|
+
- Updated dependencies [11c053b]
|
16
|
+
- Updated dependencies [28e7dc6]
|
17
|
+
- @modern-js/builder@2.4.1-beta.0
|
18
|
+
- @modern-js/builder-rspack-provider@2.5.0-beta.0
|
19
|
+
- @modern-js/builder-shared@2.5.0-beta.0
|
20
|
+
- @modern-js/builder-webpack-provider@2.5.0-beta.0
|
21
|
+
- @modern-js/builder-plugin-node-polyfill@2.4.1-beta.0
|
22
|
+
- @modern-js/prod-server@2.4.1-beta.0
|
23
|
+
- @modern-js/utils@2.4.1-beta.0
|
24
|
+
- @modern-js/builder-plugin-esbuild@2.4.1-beta.0
|
25
|
+
- @modern-js/core@2.4.1-beta.0
|
26
|
+
- @modern-js/plugin-data-loader@2.4.1-beta.0
|
27
|
+
- @modern-js/server@2.4.1-beta.0
|
28
|
+
- @modern-js/plugin-i18n@2.4.1-beta.0
|
29
|
+
- @modern-js/plugin-lint@2.4.1-beta.0
|
30
|
+
- @modern-js/new-action@2.4.1-beta.0
|
31
|
+
- @modern-js/node-bundle-require@2.4.1-beta.0
|
32
|
+
- @modern-js/upgrade@2.4.1-beta.0
|
33
|
+
|
3
34
|
## 2.4.0
|
4
35
|
|
5
36
|
### Minor Changes
|
@@ -38,7 +38,8 @@ import {
|
|
38
38
|
getEntryOptions,
|
39
39
|
SERVER_BUNDLE_DIRECTORY,
|
40
40
|
MAIN_ENTRY_NAME,
|
41
|
-
removeTailSlash
|
41
|
+
removeTailSlash,
|
42
|
+
SERVER_WORKER_BUNDLE_DIRECTORY
|
42
43
|
} from "@modern-js/utils";
|
43
44
|
import { walkDirectory } from "./utils";
|
44
45
|
const applyBaseUrl = (baseUrl, routes) => {
|
@@ -101,7 +102,7 @@ const collectHtmlRoutes = (entrypoints, appContext, config) => {
|
|
101
102
|
const {
|
102
103
|
html: { disableHtmlFolder },
|
103
104
|
output: { distPath: { html: htmlPath } = {} },
|
104
|
-
server: { baseUrl, routes, ssr, ssrByEntries }
|
105
|
+
server: { baseUrl, routes, ssr, ssrByEntries, worker }
|
105
106
|
} = config;
|
106
107
|
const { packageName } = appContext;
|
107
108
|
let htmlRoutes = entrypoints.reduce(
|
@@ -113,6 +114,7 @@ const collectHtmlRoutes = (entrypoints, appContext, config) => {
|
|
113
114
|
packageName
|
114
115
|
);
|
115
116
|
const isSSR = Boolean(entryOptions);
|
117
|
+
const isWorker = Boolean(worker);
|
116
118
|
const { resHeaders } = (routes == null ? void 0 : routes[entryName]) || {};
|
117
119
|
let route = {
|
118
120
|
urlPath: `/${entryName === MAIN_ENTRY_NAME ? "" : entryName}`,
|
@@ -125,6 +127,7 @@ const collectHtmlRoutes = (entrypoints, appContext, config) => {
|
|
125
127
|
isSPA: true,
|
126
128
|
isSSR,
|
127
129
|
responseHeaders: resHeaders,
|
130
|
+
worker: isWorker ? `${SERVER_WORKER_BUNDLE_DIRECTORY}/${entryName}.js` : void 0,
|
128
131
|
bundle: isSSR ? `${SERVER_BUNDLE_DIRECTORY}/${entryName}.js` : void 0
|
129
132
|
};
|
130
133
|
if (routes == null ? void 0 : routes.hasOwnProperty(entryName)) {
|
@@ -169,7 +169,9 @@ var analyze_default = ({
|
|
169
169
|
return __async(this, arguments, function* ({ bundlerConfigs }) {
|
170
170
|
const hookRunners2 = api.useHookRunners();
|
171
171
|
yield generateRoutes(appContext);
|
172
|
-
yield hookRunners2.beforeBuild({
|
172
|
+
yield hookRunners2.beforeBuild({
|
173
|
+
bundlerConfigs
|
174
|
+
});
|
173
175
|
});
|
174
176
|
},
|
175
177
|
onAfterBuild(_0) {
|
@@ -204,7 +206,9 @@ var analyze_default = ({
|
|
204
206
|
onAfterCreateCompiler(_0) {
|
205
207
|
return __async(this, arguments, function* ({ compiler }) {
|
206
208
|
const hookRunners2 = api.useHookRunners();
|
207
|
-
yield hookRunners2.afterCreateCompiler({
|
209
|
+
yield hookRunners2.afterCreateCompiler({
|
210
|
+
compiler
|
211
|
+
});
|
208
212
|
});
|
209
213
|
}
|
210
214
|
});
|
@@ -32,6 +32,9 @@ class RouterPlugin {
|
|
32
32
|
if (target === "node" || Array.isArray(target) && target.includes("node")) {
|
33
33
|
return;
|
34
34
|
}
|
35
|
+
if (target === "webworker" || Array.isArray(target) && target.includes("webworker")) {
|
36
|
+
return;
|
37
|
+
}
|
35
38
|
const { webpack } = compiler;
|
36
39
|
const { Compilation, sources } = webpack;
|
37
40
|
const { RawSource } = sources;
|
@@ -1,10 +1,19 @@
|
|
1
|
-
import {
|
1
|
+
import {
|
2
|
+
isProd,
|
3
|
+
isServiceWorker,
|
4
|
+
isSSR,
|
5
|
+
isUseSSRBundle
|
6
|
+
} from "@modern-js/utils";
|
2
7
|
function getBuilderTargets(normalizedConfig) {
|
3
8
|
const targets = ["web"];
|
4
9
|
const useNodeTarget = isProd() ? isUseSSRBundle(normalizedConfig) : isSSR(normalizedConfig);
|
5
10
|
if (useNodeTarget) {
|
6
11
|
targets.push("node");
|
7
12
|
}
|
13
|
+
const useWorkerTarget = isProd() ? isServiceWorker(normalizedConfig) : false;
|
14
|
+
if (useWorkerTarget) {
|
15
|
+
targets.push("service-worker");
|
16
|
+
}
|
8
17
|
return targets;
|
9
18
|
}
|
10
19
|
export {
|
@@ -58,13 +58,17 @@ const builderPluginAdapterModern = (options) => ({
|
|
58
58
|
const builderConfig = api.getNormalizedConfig();
|
59
59
|
if (target === "node") {
|
60
60
|
chain.name("server");
|
61
|
+
} else if (target === "service-worker") {
|
62
|
+
chain.name("service-worker");
|
63
|
+
} else if (target === "web-worker") {
|
64
|
+
chain.name("worker");
|
61
65
|
} else if (target === "modern-web") {
|
62
66
|
chain.name("modern");
|
63
67
|
} else {
|
64
68
|
chain.name("client");
|
65
69
|
}
|
66
|
-
if (target === "node") {
|
67
|
-
applyNodeCompat(chain, normalizedConfig, isProd);
|
70
|
+
if (target === "node" || target === "service-worker") {
|
71
|
+
applyNodeCompat(target, chain, normalizedConfig, isProd);
|
68
72
|
}
|
69
73
|
if (isHtmlEnabled(builderConfig, target)) {
|
70
74
|
applyBottomHtmlPlugin({
|
@@ -80,7 +84,7 @@ const builderPluginAdapterModern = (options) => ({
|
|
80
84
|
CHAIN_ID
|
81
85
|
});
|
82
86
|
}
|
83
|
-
if (target !== "node") {
|
87
|
+
if (target !== "node" && target !== "web-worker" && target !== "service-worker") {
|
84
88
|
const bareServerModuleReg = /\.(server|node)\.[tj]sx?$/;
|
85
89
|
chain.module.rule(CHAIN_ID.RULE.JS).exclude.add(bareServerModuleReg);
|
86
90
|
chain.module.rule("bare-server-module").test(bareServerModuleReg).use("server-module-loader").loader(require.resolve("../loaders/serverModuleLoader"));
|
@@ -89,7 +93,7 @@ const builderPluginAdapterModern = (options) => ({
|
|
89
93
|
applyCallbacks(api, options);
|
90
94
|
function isHtmlEnabled(config, target) {
|
91
95
|
var _a;
|
92
|
-
return ((_a = config.tools) == null ? void 0 : _a.htmlPlugin) !== false && target !== "node" && target !== "web-worker";
|
96
|
+
return ((_a = config.tools) == null ? void 0 : _a.htmlPlugin) !== false && target !== "node" && target !== "service-worker" && target !== "web-worker";
|
93
97
|
}
|
94
98
|
}
|
95
99
|
});
|
@@ -146,8 +150,8 @@ function applyAsyncChunkHtmlPlugin({
|
|
146
150
|
chain.plugin(CHAIN_ID.PLUGIN.HTML_ASYNC_CHUNK).use(HtmlAsyncChunkPlugin, [HtmlWebpackPlugin]);
|
147
151
|
}
|
148
152
|
}
|
149
|
-
function applyNodeCompat(chain, modernConfig, isProd) {
|
150
|
-
|
153
|
+
function applyNodeCompat(target, chain, modernConfig, isProd) {
|
154
|
+
const nodeExts = [
|
151
155
|
".node.js",
|
152
156
|
".node.jsx",
|
153
157
|
".node.ts",
|
@@ -156,9 +160,21 @@ function applyNodeCompat(chain, modernConfig, isProd) {
|
|
156
160
|
".server.ts",
|
157
161
|
".server.ts",
|
158
162
|
".server.tsx"
|
159
|
-
]
|
163
|
+
];
|
164
|
+
const webWorkerExts = [
|
165
|
+
".worker.js",
|
166
|
+
".worker.jsx",
|
167
|
+
".worker.ts",
|
168
|
+
".worker.tsx"
|
169
|
+
];
|
170
|
+
for (const ext of nodeExts) {
|
160
171
|
chain.resolve.extensions.prepend(ext);
|
161
172
|
}
|
173
|
+
if (target === "service-worker") {
|
174
|
+
for (const ext of webWorkerExts) {
|
175
|
+
chain.resolve.extensions.prepend(ext);
|
176
|
+
}
|
177
|
+
}
|
162
178
|
filterEntriesBySSRConfig(
|
163
179
|
isProd,
|
164
180
|
chain,
|
@@ -119,7 +119,7 @@ const collectHtmlRoutes = (entrypoints, appContext, config) => {
|
|
119
119
|
const {
|
120
120
|
html: { disableHtmlFolder },
|
121
121
|
output: { distPath: { html: htmlPath } = {} },
|
122
|
-
server: { baseUrl, routes, ssr, ssrByEntries }
|
122
|
+
server: { baseUrl, routes, ssr, ssrByEntries, worker }
|
123
123
|
} = config;
|
124
124
|
const { packageName } = appContext;
|
125
125
|
let htmlRoutes = entrypoints.reduce(
|
@@ -131,6 +131,7 @@ const collectHtmlRoutes = (entrypoints, appContext, config) => {
|
|
131
131
|
packageName
|
132
132
|
);
|
133
133
|
const isSSR = Boolean(entryOptions);
|
134
|
+
const isWorker = Boolean(worker);
|
134
135
|
const { resHeaders } = (routes == null ? void 0 : routes[entryName]) || {};
|
135
136
|
let route = {
|
136
137
|
urlPath: `/${entryName === import_utils.MAIN_ENTRY_NAME ? "" : entryName}`,
|
@@ -143,6 +144,7 @@ const collectHtmlRoutes = (entrypoints, appContext, config) => {
|
|
143
144
|
isSPA: true,
|
144
145
|
isSSR,
|
145
146
|
responseHeaders: resHeaders,
|
147
|
+
worker: isWorker ? `${import_utils.SERVER_WORKER_BUNDLE_DIRECTORY}/${entryName}.js` : void 0,
|
146
148
|
bundle: isSSR ? `${import_utils.SERVER_BUNDLE_DIRECTORY}/${entryName}.js` : void 0
|
147
149
|
};
|
148
150
|
if (routes == null ? void 0 : routes.hasOwnProperty(entryName)) {
|
@@ -177,7 +177,9 @@ var analyze_default = ({
|
|
177
177
|
return __async(this, arguments, function* ({ bundlerConfigs }) {
|
178
178
|
const hookRunners2 = api.useHookRunners();
|
179
179
|
yield (0, import_routes.generateRoutes)(appContext);
|
180
|
-
yield hookRunners2.beforeBuild({
|
180
|
+
yield hookRunners2.beforeBuild({
|
181
|
+
bundlerConfigs
|
182
|
+
});
|
181
183
|
});
|
182
184
|
},
|
183
185
|
onAfterBuild(_0) {
|
@@ -212,7 +214,9 @@ var analyze_default = ({
|
|
212
214
|
onAfterCreateCompiler(_0) {
|
213
215
|
return __async(this, arguments, function* ({ compiler }) {
|
214
216
|
const hookRunners2 = api.useHookRunners();
|
215
|
-
yield hookRunners2.afterCreateCompiler({
|
217
|
+
yield hookRunners2.afterCreateCompiler({
|
218
|
+
compiler
|
219
|
+
});
|
216
220
|
});
|
217
221
|
}
|
218
222
|
});
|
@@ -55,6 +55,9 @@ class RouterPlugin {
|
|
55
55
|
if (target === "node" || Array.isArray(target) && target.includes("node")) {
|
56
56
|
return;
|
57
57
|
}
|
58
|
+
if (target === "webworker" || Array.isArray(target) && target.includes("webworker")) {
|
59
|
+
return;
|
60
|
+
}
|
58
61
|
const { webpack } = compiler;
|
59
62
|
const { Compilation, sources } = webpack;
|
60
63
|
const { RawSource } = sources;
|
@@ -27,6 +27,10 @@ function getBuilderTargets(normalizedConfig) {
|
|
27
27
|
if (useNodeTarget) {
|
28
28
|
targets.push("node");
|
29
29
|
}
|
30
|
+
const useWorkerTarget = (0, import_utils.isProd)() ? (0, import_utils.isServiceWorker)(normalizedConfig) : false;
|
31
|
+
if (useWorkerTarget) {
|
32
|
+
targets.push("service-worker");
|
33
|
+
}
|
30
34
|
return targets;
|
31
35
|
}
|
32
36
|
// Annotate the CommonJS export names for ESM import in node:
|
@@ -83,13 +83,17 @@ const builderPluginAdapterModern = (options) => ({
|
|
83
83
|
const builderConfig = api.getNormalizedConfig();
|
84
84
|
if (target === "node") {
|
85
85
|
chain.name("server");
|
86
|
+
} else if (target === "service-worker") {
|
87
|
+
chain.name("service-worker");
|
88
|
+
} else if (target === "web-worker") {
|
89
|
+
chain.name("worker");
|
86
90
|
} else if (target === "modern-web") {
|
87
91
|
chain.name("modern");
|
88
92
|
} else {
|
89
93
|
chain.name("client");
|
90
94
|
}
|
91
|
-
if (target === "node") {
|
92
|
-
applyNodeCompat(chain, normalizedConfig, isProd);
|
95
|
+
if (target === "node" || target === "service-worker") {
|
96
|
+
applyNodeCompat(target, chain, normalizedConfig, isProd);
|
93
97
|
}
|
94
98
|
if (isHtmlEnabled(builderConfig, target)) {
|
95
99
|
applyBottomHtmlPlugin({
|
@@ -105,7 +109,7 @@ const builderPluginAdapterModern = (options) => ({
|
|
105
109
|
CHAIN_ID
|
106
110
|
});
|
107
111
|
}
|
108
|
-
if (target !== "node") {
|
112
|
+
if (target !== "node" && target !== "web-worker" && target !== "service-worker") {
|
109
113
|
const bareServerModuleReg = /\.(server|node)\.[tj]sx?$/;
|
110
114
|
chain.module.rule(CHAIN_ID.RULE.JS).exclude.add(bareServerModuleReg);
|
111
115
|
chain.module.rule("bare-server-module").test(bareServerModuleReg).use("server-module-loader").loader(require.resolve("../loaders/serverModuleLoader"));
|
@@ -114,7 +118,7 @@ const builderPluginAdapterModern = (options) => ({
|
|
114
118
|
applyCallbacks(api, options);
|
115
119
|
function isHtmlEnabled(config, target) {
|
116
120
|
var _a;
|
117
|
-
return ((_a = config.tools) == null ? void 0 : _a.htmlPlugin) !== false && target !== "node" && target !== "web-worker";
|
121
|
+
return ((_a = config.tools) == null ? void 0 : _a.htmlPlugin) !== false && target !== "node" && target !== "service-worker" && target !== "web-worker";
|
118
122
|
}
|
119
123
|
}
|
120
124
|
});
|
@@ -171,8 +175,8 @@ function applyAsyncChunkHtmlPlugin({
|
|
171
175
|
chain.plugin(CHAIN_ID.PLUGIN.HTML_ASYNC_CHUNK).use(import_HtmlAsyncChunkPlugin.HtmlAsyncChunkPlugin, [import_html_webpack_plugin.default]);
|
172
176
|
}
|
173
177
|
}
|
174
|
-
function applyNodeCompat(chain, modernConfig, isProd) {
|
175
|
-
|
178
|
+
function applyNodeCompat(target, chain, modernConfig, isProd) {
|
179
|
+
const nodeExts = [
|
176
180
|
".node.js",
|
177
181
|
".node.jsx",
|
178
182
|
".node.ts",
|
@@ -181,9 +185,21 @@ function applyNodeCompat(chain, modernConfig, isProd) {
|
|
181
185
|
".server.ts",
|
182
186
|
".server.ts",
|
183
187
|
".server.tsx"
|
184
|
-
]
|
188
|
+
];
|
189
|
+
const webWorkerExts = [
|
190
|
+
".worker.js",
|
191
|
+
".worker.jsx",
|
192
|
+
".worker.ts",
|
193
|
+
".worker.tsx"
|
194
|
+
];
|
195
|
+
for (const ext of nodeExts) {
|
185
196
|
chain.resolve.extensions.prepend(ext);
|
186
197
|
}
|
198
|
+
if (target === "service-worker") {
|
199
|
+
for (const ext of webWorkerExts) {
|
200
|
+
chain.resolve.extensions.prepend(ext);
|
201
|
+
}
|
202
|
+
}
|
187
203
|
filterEntriesBySSRConfig(
|
188
204
|
isProd,
|
189
205
|
chain,
|
@@ -161,7 +161,7 @@ var createImportSpecifier = function(specifiers) {
|
|
161
161
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
162
162
|
try {
|
163
163
|
for(var _iterator = specifiers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
164
|
-
var
|
164
|
+
var _step_value = _step.value, local = _step_value.local, imported = _step_value.imported;
|
165
165
|
if (local && imported) {
|
166
166
|
named.push("".concat(imported, " as ").concat(local));
|
167
167
|
} else if (local) {
|
@@ -198,7 +198,7 @@ var createImportStatements = function(statements) {
|
|
198
198
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
199
199
|
try {
|
200
200
|
var _loop = function() {
|
201
|
-
var
|
201
|
+
var _step_value = _step.value, value = _step_value.value, specifiers = _step_value.specifiers, initialize = _step_value.initialize;
|
202
202
|
if (!seen.has(value)) {
|
203
203
|
deDuplicated.push({
|
204
204
|
value: value,
|
@@ -207,14 +207,14 @@ var createImportStatements = function(statements) {
|
|
207
207
|
});
|
208
208
|
seen.set(value, specifiers);
|
209
209
|
} else {
|
210
|
-
var
|
211
|
-
var
|
212
|
-
(
|
210
|
+
var _seen_get;
|
211
|
+
var _deDuplicated_modifyIndex;
|
212
|
+
(_seen_get = seen.get(value)).push.apply(_seen_get, _toConsumableArray(specifiers));
|
213
213
|
var modifyIndex = deDuplicated.findIndex(function(v) {
|
214
214
|
return v.value === value;
|
215
215
|
});
|
216
|
-
var
|
217
|
-
var originInitialize = (
|
216
|
+
var _deDuplicated_modifyIndex_initialize;
|
217
|
+
var originInitialize = (_deDuplicated_modifyIndex_initialize = (_deDuplicated_modifyIndex = deDuplicated[modifyIndex]) === null || _deDuplicated_modifyIndex === void 0 ? void 0 : _deDuplicated_modifyIndex.initialize) !== null && _deDuplicated_modifyIndex_initialize !== void 0 ? _deDuplicated_modifyIndex_initialize : "";
|
218
218
|
deDuplicated[modifyIndex].initialize = originInitialize.concat("\n".concat(initialize || ""));
|
219
219
|
}
|
220
220
|
};
|
@@ -240,13 +240,13 @@ var createImportStatements = function(statements) {
|
|
240
240
|
};
|
241
241
|
var generateCode = function() {
|
242
242
|
var _ref = _asyncToGenerator(function(appContext, config, entrypoints, api) {
|
243
|
-
var
|
243
|
+
var _config_runtime, _config_runtime1, _config_runtime_router, internalDirectory, srcDirectory, internalDirAlias, internalSrcAlias, packageName, hookRunners, isV5, mountId, getRoutes;
|
244
244
|
function generateEntryCode(entrypoint) {
|
245
245
|
return _generateEntryCode.apply(this, arguments);
|
246
246
|
}
|
247
247
|
function _generateEntryCode() {
|
248
248
|
_generateEntryCode = _asyncToGenerator(function(entrypoint) {
|
249
|
-
var entryName, isAutoMount, customBootstrap, fileSystemRoutes, initialRoutes, nestedRoute, routes, config2, ssr, mode, hasPageRoute,
|
249
|
+
var entryName, isAutoMount, customBootstrap, fileSystemRoutes, initialRoutes, nestedRoute, routes, config2, ssr, mode, hasPageRoute, _ref, code2, _, _tmp, routesServerFile, code3, _ref1, importStatements, plugins, _ref2, renderFunction, exportStatement, code, entryFile, _ref3, asyncEntryCode, bootstrapFile;
|
250
250
|
return __generator(this, function(_state) {
|
251
251
|
switch(_state.label){
|
252
252
|
case 0:
|
@@ -346,7 +346,7 @@ var generateCode = function() {
|
|
346
346
|
])
|
347
347
|
];
|
348
348
|
case 6:
|
349
|
-
|
349
|
+
_ref = _state.sent(), code2 = _ref.code;
|
350
350
|
if (!(entrypoint.nestedRoutesEntry && mode)) return [
|
351
351
|
3,
|
352
352
|
9
|
@@ -386,7 +386,7 @@ var generateCode = function() {
|
|
386
386
|
})
|
387
387
|
];
|
388
388
|
case 11:
|
389
|
-
|
389
|
+
_ref1 = _state.sent(), importStatements = _ref1.imports;
|
390
390
|
return [
|
391
391
|
4,
|
392
392
|
hookRunners.modifyEntryRuntimePlugins({
|
@@ -408,7 +408,7 @@ var generateCode = function() {
|
|
408
408
|
})
|
409
409
|
];
|
410
410
|
case 13:
|
411
|
-
|
411
|
+
_ref2 = _state.sent(), renderFunction = _ref2.code;
|
412
412
|
return [
|
413
413
|
4,
|
414
414
|
hookRunners.modifyEntryExport({
|
@@ -438,7 +438,7 @@ var generateCode = function() {
|
|
438
438
|
})
|
439
439
|
];
|
440
440
|
case 15:
|
441
|
-
|
441
|
+
_ref3 = _state.sent(), asyncEntryCode = _ref3.code;
|
442
442
|
fs.outputFileSync(entryFile, asyncEntryCode, "utf8");
|
443
443
|
bootstrapFile = path.resolve(internalDirectory, "./".concat(entryName, "/").concat(ENTRY_BOOTSTRAP_FILE_NAME));
|
444
444
|
fs.outputFileSync(bootstrapFile, code, "utf8");
|
@@ -463,7 +463,7 @@ var generateCode = function() {
|
|
463
463
|
case 0:
|
464
464
|
internalDirectory = appContext.internalDirectory, srcDirectory = appContext.srcDirectory, internalDirAlias = appContext.internalDirAlias, internalSrcAlias = appContext.internalSrcAlias, packageName = appContext.packageName;
|
465
465
|
hookRunners = api.useHookRunners();
|
466
|
-
isV5 = typeof ((
|
466
|
+
isV5 = typeof ((_config_runtime = config.runtime) === null || _config_runtime === void 0 ? void 0 : _config_runtime.router) !== "boolean" && (config === null || config === void 0 ? void 0 : (_config_runtime1 = config.runtime) === null || _config_runtime1 === void 0 ? void 0 : (_config_runtime_router = _config_runtime1.router) === null || _config_runtime_router === void 0 ? void 0 : _config_runtime_router.mode) === "react-router-5";
|
467
467
|
mountId = config.html.mountId;
|
468
468
|
getRoutes = isV5 ? getClientRoutesLegacy : getClientRoutes;
|
469
469
|
return [
|
@@ -24,7 +24,7 @@ var ifAlreadyExists = function(entrypoints, checked) {
|
|
24
24
|
};
|
25
25
|
var getBundleEntry = function(appContext, config) {
|
26
26
|
var appDirectory = appContext.appDirectory, packageName = appContext.packageName;
|
27
|
-
var
|
27
|
+
var _config_source = config.source, disableDefaultEntries = _config_source.disableDefaultEntries, entries = _config_source.entries, entriesDir = _config_source.entriesDir;
|
28
28
|
var defaults = disableDefaultEntries ? [] : getFileSystemEntry(appContext, config);
|
29
29
|
if (entries) {
|
30
30
|
Object.keys(entries).forEach(function(name) {
|
@@ -52,7 +52,7 @@ var getBundleEntry = function(appContext, config) {
|
|
52
52
|
if (!disableDefaultEntries) {
|
53
53
|
var entriesDirAbs = ensureAbsolutePath(appDirectory, entriesDir || "");
|
54
54
|
var found = defaults.find(function(param) {
|
55
|
-
var entryName = param.entryName, entry = param.entry,
|
55
|
+
var entryName = param.entryName, entry = param.entry, _param_nestedRoutesEntry = param.nestedRoutesEntry, nestedRoutesEntry = _param_nestedRoutesEntry === void 0 ? "" : _param_nestedRoutesEntry;
|
56
56
|
return entryName === packageName || path.dirname(entry) === entriesDirAbs || path.dirname(nestedRoutesEntry) === entriesDirAbs;
|
57
57
|
});
|
58
58
|
found && (found.entryName = MAIN_ENTRY_NAME);
|
@@ -67,7 +67,7 @@ var layoutNameAbbr = function(filePath) {
|
|
67
67
|
};
|
68
68
|
var parents = [];
|
69
69
|
var recursiveReadDir = function(param) {
|
70
|
-
var dir = param.dir, routes = param.routes,
|
70
|
+
var dir = param.dir, routes = param.routes, _param_basePath = param.basePath, basePath = _param_basePath === void 0 ? "/" : _param_basePath, srcDirectory = param.srcDirectory, srcAlias = param.srcAlias;
|
71
71
|
var hasDynamicRoute = false;
|
72
72
|
var resetParent = false;
|
73
73
|
var parent = parents[parents.length - 1];
|
@@ -67,7 +67,7 @@ var layoutNameAbbr = function(filePath) {
|
|
67
67
|
};
|
68
68
|
var parents = [];
|
69
69
|
var recursiveReadDirLegacy = function(param) {
|
70
|
-
var dir = param.dir, routes = param.routes,
|
70
|
+
var dir = param.dir, routes = param.routes, _param_basePath = param.basePath, basePath = _param_basePath === void 0 ? "/" : _param_basePath, srcDirectory = param.srcDirectory, srcAlias = param.srcAlias;
|
71
71
|
var hasDynamicRoute = false;
|
72
72
|
var resetParent = false;
|
73
73
|
var parent = parents[parents.length - 1];
|
@@ -80,7 +80,7 @@ var scanDir = function(dirs) {
|
|
80
80
|
};
|
81
81
|
var getFileSystemEntry = function(appContext, config) {
|
82
82
|
var appDirectory = appContext.appDirectory;
|
83
|
-
var
|
83
|
+
var _config_source = config.source, entriesDir = _config_source.entriesDir, disableEntryDirs = _config_source.disableEntryDirs;
|
84
84
|
var disabledDirs = [];
|
85
85
|
if (disableEntryDirs && Array.isArray(disableEntryDirs)) {
|
86
86
|
disabledDirs = disableEntryDirs === null || disableEntryDirs === void 0 ? void 0 : disableEntryDirs.map(function(dir) {
|
@@ -104,7 +104,7 @@ function _unsupportedIterableToArray(o, minLen) {
|
|
104
104
|
}
|
105
105
|
import path from "path";
|
106
106
|
import fs from "fs";
|
107
|
-
import { urlJoin, isPlainObject, removeLeadingSlash, getEntryOptions, SERVER_BUNDLE_DIRECTORY, MAIN_ENTRY_NAME, removeTailSlash } from "@modern-js/utils";
|
107
|
+
import { urlJoin, isPlainObject, removeLeadingSlash, getEntryOptions, SERVER_BUNDLE_DIRECTORY, MAIN_ENTRY_NAME, removeTailSlash, SERVER_WORKER_BUNDLE_DIRECTORY } from "@modern-js/utils";
|
108
108
|
import { walkDirectory } from "./utils";
|
109
109
|
var applyBaseUrl = function(baseUrl, routes) {
|
110
110
|
if (baseUrl) {
|
@@ -130,8 +130,8 @@ var applyRouteOptions = function(original, routeOptions) {
|
|
130
130
|
var routes;
|
131
131
|
if (route) {
|
132
132
|
if (Array.isArray(route)) {
|
133
|
-
var
|
134
|
-
|
133
|
+
var _route_map;
|
134
|
+
_route_map = route.map(function(url) {
|
135
135
|
if (isPlainObject(url)) {
|
136
136
|
var urlPath = url.path, other = _objectWithoutProperties(url, [
|
137
137
|
"path"
|
@@ -144,7 +144,7 @@ var applyRouteOptions = function(original, routeOptions) {
|
|
144
144
|
urlPath: url
|
145
145
|
});
|
146
146
|
}
|
147
|
-
}), routes =
|
147
|
+
}), routes = _route_map, _route_map;
|
148
148
|
} else if (isPlainObject(route)) {
|
149
149
|
var urlPath = route.path, other = _objectWithoutProperties(route, [
|
150
150
|
"path"
|
@@ -169,12 +169,13 @@ var applyRouteOptions = function(original, routeOptions) {
|
|
169
169
|
return routes;
|
170
170
|
};
|
171
171
|
var collectHtmlRoutes = function(entrypoints, appContext, config) {
|
172
|
-
var disableHtmlFolder = config.html.disableHtmlFolder,
|
172
|
+
var disableHtmlFolder = config.html.disableHtmlFolder, _config_output = config.output, tmp = _config_output.distPath, _ref = tmp === void 0 ? {} : tmp, htmlPath = _ref.html, _config_server = config.server, baseUrl = _config_server.baseUrl, routes = _config_server.routes, ssr = _config_server.ssr, ssrByEntries = _config_server.ssrByEntries, worker = _config_server.worker;
|
173
173
|
var packageName = appContext.packageName;
|
174
174
|
var htmlRoutes = entrypoints.reduce(function(previous, param) {
|
175
175
|
var entryName = param.entryName;
|
176
176
|
var entryOptions = getEntryOptions(entryName, ssr, ssrByEntries, packageName);
|
177
177
|
var isSSR = Boolean(entryOptions);
|
178
|
+
var isWorker = Boolean(worker);
|
178
179
|
var resHeaders = ((routes === null || routes === void 0 ? void 0 : routes[entryName]) || {}).resHeaders;
|
179
180
|
var route = {
|
180
181
|
urlPath: "/".concat(entryName === MAIN_ENTRY_NAME ? "" : entryName),
|
@@ -183,6 +184,7 @@ var collectHtmlRoutes = function(entrypoints, appContext, config) {
|
|
183
184
|
isSPA: true,
|
184
185
|
isSSR: isSSR,
|
185
186
|
responseHeaders: resHeaders,
|
187
|
+
worker: isWorker ? "".concat(SERVER_WORKER_BUNDLE_DIRECTORY, "/").concat(entryName, ".js") : void 0,
|
186
188
|
bundle: isSSR ? "".concat(SERVER_BUNDLE_DIRECTORY, "/").concat(entryName, ".js") : void 0
|
187
189
|
};
|
188
190
|
if (routes === null || routes === void 0 ? void 0 : routes.hasOwnProperty(entryName)) {
|
@@ -200,7 +202,7 @@ var collectHtmlRoutes = function(entrypoints, appContext, config) {
|
|
200
202
|
};
|
201
203
|
var collectStaticRoutes = function(appContext, config) {
|
202
204
|
var appDirectory = appContext.appDirectory;
|
203
|
-
var configDir = config.source.configDir,
|
205
|
+
var configDir = config.source.configDir, _config_server = config.server, _config_server_publicRoutes = _config_server.publicRoutes, publicRoutes = _config_server_publicRoutes === void 0 ? {} : _config_server_publicRoutes;
|
204
206
|
var publicFolder = path.resolve(appDirectory, configDir || "", "public");
|
205
207
|
return fs.existsSync(publicFolder) ? walkDirectory(publicFolder).map(function(filePath) {
|
206
208
|
var urlPath = "".concat(urlJoin(toPosix(filePath).slice(toPosix(publicFolder).length)));
|
@@ -243,7 +243,7 @@ var analyze_default = function(param) {
|
|
243
243
|
return {
|
244
244
|
prepare: function prepare() {
|
245
245
|
return _asyncToGenerator(function() {
|
246
|
-
var
|
246
|
+
var _resolvedConfig_source, appContext, resolvedConfig, hookRunners, apiOnly, _ref, routes2, _ref1, getBundleEntry, getServerRoutes, generateCode, getHtmlTemplate, entrypoints, initialRoutes, routes, htmlTemplates, checkedEntries, entry, command, buildCommands, normalizedConfig, createBuilderForModern, builder;
|
247
247
|
return __generator(this, function(_state) {
|
248
248
|
switch(_state.label){
|
249
249
|
case 0:
|
@@ -255,7 +255,7 @@ var analyze_default = function(param) {
|
|
255
255
|
} catch (e) {}
|
256
256
|
return [
|
257
257
|
4,
|
258
|
-
isApiOnly(appContext.appDirectory, (
|
258
|
+
isApiOnly(appContext.appDirectory, (_resolvedConfig_source = resolvedConfig.source) === null || _resolvedConfig_source === void 0 ? void 0 : _resolvedConfig_source.entriesDir)
|
259
259
|
];
|
260
260
|
case 1:
|
261
261
|
apiOnly = _state.sent();
|
@@ -276,7 +276,7 @@ var analyze_default = function(param) {
|
|
276
276
|
})
|
277
277
|
];
|
278
278
|
case 3:
|
279
|
-
|
279
|
+
_ref = _state.sent(), routes2 = _ref.routes;
|
280
280
|
debug("server routes: %o", routes2);
|
281
281
|
appContext = _objectSpreadProps(_objectSpread({}, appContext), {
|
282
282
|
apiOnly: apiOnly,
|
@@ -297,10 +297,10 @@ var analyze_default = function(param) {
|
|
297
297
|
])
|
298
298
|
];
|
299
299
|
case 5:
|
300
|
-
|
300
|
+
_ref1 = _slicedToArray.apply(void 0, [
|
301
301
|
_state.sent(),
|
302
302
|
4
|
303
|
-
]), getBundleEntry =
|
303
|
+
]), getBundleEntry = _ref1[0].getBundleEntry, getServerRoutes = _ref1[1].getServerRoutes, generateCode = _ref1[2].generateCode, getHtmlTemplate = _ref1[3].getHtmlTemplate;
|
304
304
|
entrypoints = getBundleEntry(appContext, resolvedConfig);
|
305
305
|
debug("entrypoints: %o", entrypoints);
|
306
306
|
initialRoutes = getServerRoutes(entrypoints, {
|
@@ -573,7 +573,7 @@ var analyze_default = function(param) {
|
|
573
573
|
modifyEntryImports: function modifyEntryImports(param) {
|
574
574
|
var entrypoint = param.entrypoint, imports = param.imports;
|
575
575
|
return _asyncToGenerator(function() {
|
576
|
-
var appContext, srcDirectory, internalSrcAlias, fileSystemRoutes, nestedRoutesEntry, rootLayoutPath, rootLayoutFile, rootLayoutBuffer, rootLayout,
|
576
|
+
var appContext, srcDirectory, internalSrcAlias, fileSystemRoutes, nestedRoutesEntry, rootLayoutPath, rootLayoutFile, rootLayoutBuffer, rootLayout, _ref, moduleExports, hasAppConfig, generateLayoutPath, hasAppInit;
|
577
577
|
return __generator(this, function(_state) {
|
578
578
|
switch(_state.label){
|
579
579
|
case 0:
|
@@ -612,10 +612,10 @@ var analyze_default = function(param) {
|
|
612
612
|
})
|
613
613
|
];
|
614
614
|
case 2:
|
615
|
-
|
615
|
+
_ref = _slicedToArray.apply(void 0, [
|
616
616
|
_state.sent(),
|
617
617
|
2
|
618
|
-
]), moduleExports =
|
618
|
+
]), moduleExports = _ref[1];
|
619
619
|
hasAppConfig = moduleExports.some(function(e) {
|
620
620
|
return e.n === APP_CONFIG_NAME;
|
621
621
|
});
|