@modern-js/app-tools 2.31.3-alpha.0 → 2.32.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 +58 -0
- package/LICENSE +1 -1
- package/dist/cjs/analyze/getServerRoutes.js +1 -1
- package/dist/cjs/index.js +1 -4
- package/dist/esm/analyze/getServerRoutes.js +1 -1
- package/dist/esm/index.js +1 -14
- package/dist/esm-node/analyze/getServerRoutes.js +1 -1
- package/dist/esm-node/index.js +1 -4
- package/package.json +24 -24
- package/dist/js/modern/analyze/constants.js +0 -54
- package/dist/js/modern/analyze/generateCode.js +0 -247
- package/dist/js/modern/analyze/getBundleEntry.js +0 -71
- package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +0 -220
- package/dist/js/modern/analyze/getClientRoutes/getRoutesLegacy.js +0 -216
- package/dist/js/modern/analyze/getClientRoutes/index.js +0 -6
- package/dist/js/modern/analyze/getClientRoutes/utils.js +0 -31
- package/dist/js/modern/analyze/getFileSystemEntry.js +0 -109
- package/dist/js/modern/analyze/getHtmlTemplate.js +0 -115
- package/dist/js/modern/analyze/getServerRoutes.js +0 -175
- package/dist/js/modern/analyze/index.js +0 -332
- package/dist/js/modern/analyze/isDefaultExportFunction.js +0 -42
- package/dist/js/modern/analyze/makeLegalIdentifier.js +0 -13
- package/dist/js/modern/analyze/nestedRoutes.js +0 -157
- package/dist/js/modern/analyze/templates.js +0 -334
- package/dist/js/modern/analyze/utils.js +0 -141
- package/dist/js/modern/builder/builderPlugins/compatModern.js +0 -233
- package/dist/js/modern/builder/index.js +0 -159
- package/dist/js/modern/builder/loaders/routerLoader.js +0 -17
- package/dist/js/modern/builder/loaders/serverModuleLoader.js +0 -7
- package/dist/js/modern/builder/share.js +0 -46
- package/dist/js/modern/builder/webpackPlugins/htmlAsyncChunkPlugin.js +0 -30
- package/dist/js/modern/builder/webpackPlugins/htmlBottomTemplate.js +0 -37
- package/dist/js/modern/builder/webpackPlugins/routerPlugin.js +0 -113
- package/dist/js/modern/commands/build.js +0 -91
- package/dist/js/modern/commands/deploy.js +0 -28
- package/dist/js/modern/commands/dev.js +0 -109
- package/dist/js/modern/commands/index.js +0 -3
- package/dist/js/modern/commands/inspect.js +0 -38
- package/dist/js/modern/commands/serve.js +0 -54
- package/dist/js/modern/config/default.js +0 -175
- package/dist/js/modern/config/index.js +0 -8
- package/dist/js/modern/config/initial/createHtmlConfig.js +0 -35
- package/dist/js/modern/config/initial/createOutputConfig.js +0 -68
- package/dist/js/modern/config/initial/createSourceConfig.js +0 -39
- package/dist/js/modern/config/initial/createToolsConfig.js +0 -42
- package/dist/js/modern/config/initial/index.js +0 -16
- package/dist/js/modern/config/initial/inits.js +0 -152
- package/dist/js/modern/config/initial/transformNormalizedConfig.js +0 -47
- package/dist/js/modern/defineConfig.js +0 -27
- package/dist/js/modern/exports/server.js +0 -4
- package/dist/js/modern/hooks.js +0 -35
- package/dist/js/modern/index.js +0 -211
- package/dist/js/modern/initialize/index.js +0 -124
- package/dist/js/modern/locale/en.js +0 -36
- package/dist/js/modern/locale/index.js +0 -9
- package/dist/js/modern/locale/zh.js +0 -36
- package/dist/js/modern/schema/Schema.js +0 -40
- package/dist/js/modern/schema/index.js +0 -88
- package/dist/js/modern/schema/legacy.js +0 -148
- package/dist/js/modern/types/config/deploy.js +0 -0
- package/dist/js/modern/types/config/dev.js +0 -0
- package/dist/js/modern/types/config/experiments.js +0 -0
- package/dist/js/modern/types/config/html.js +0 -0
- package/dist/js/modern/types/config/index.js +0 -1
- package/dist/js/modern/types/config/output.js +0 -0
- package/dist/js/modern/types/config/performance.js +0 -0
- package/dist/js/modern/types/config/security.js +0 -0
- package/dist/js/modern/types/config/source.js +0 -0
- package/dist/js/modern/types/config/tools.js +0 -0
- package/dist/js/modern/types/hooks.js +0 -0
- package/dist/js/modern/types/index.js +0 -3
- package/dist/js/modern/types/legacyConfig/deploy.js +0 -0
- package/dist/js/modern/types/legacyConfig/dev.js +0 -0
- package/dist/js/modern/types/legacyConfig/index.js +0 -0
- package/dist/js/modern/types/legacyConfig/output.js +0 -0
- package/dist/js/modern/types/legacyConfig/source.js +0 -0
- package/dist/js/modern/types/legacyConfig/tools.js +0 -0
- package/dist/js/modern/utils/config.js +0 -128
- package/dist/js/modern/utils/createServer.js +0 -75
- package/dist/js/modern/utils/env.js +0 -15
- package/dist/js/modern/utils/generateWatchFiles.js +0 -55
- package/dist/js/modern/utils/getSelectedEntries.js +0 -58
- package/dist/js/modern/utils/getServerInternalPlugins.js +0 -58
- package/dist/js/modern/utils/language.js +0 -8
- package/dist/js/modern/utils/printInstructions.js +0 -31
- package/dist/js/modern/utils/restart.js +0 -44
- package/dist/js/modern/utils/routes.js +0 -30
- package/dist/js/modern/utils/types.js +0 -0
- package/dist/js/node/analyze/constants.js +0 -98
- package/dist/js/node/analyze/generateCode.js +0 -271
- package/dist/js/node/analyze/getBundleEntry.js +0 -95
- package/dist/js/node/analyze/getClientRoutes/getRoutes.js +0 -242
- package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +0 -238
- package/dist/js/node/analyze/getClientRoutes/index.js +0 -30
- package/dist/js/node/analyze/getClientRoutes/utils.js +0 -58
- package/dist/js/node/analyze/getFileSystemEntry.js +0 -131
- package/dist/js/node/analyze/getHtmlTemplate.js +0 -144
- package/dist/js/node/analyze/getServerRoutes.js +0 -194
- package/dist/js/node/analyze/index.js +0 -339
- package/dist/js/node/analyze/isDefaultExportFunction.js +0 -71
- package/dist/js/node/analyze/makeLegalIdentifier.js +0 -36
- package/dist/js/node/analyze/nestedRoutes.js +0 -184
- package/dist/js/node/analyze/templates.js +0 -365
- package/dist/js/node/analyze/utils.js +0 -172
- package/dist/js/node/builder/builderPlugins/compatModern.js +0 -258
- package/dist/js/node/builder/index.js +0 -177
- package/dist/js/node/builder/loaders/routerLoader.js +0 -38
- package/dist/js/node/builder/loaders/serverModuleLoader.js +0 -28
- package/dist/js/node/builder/share.js +0 -75
- package/dist/js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js +0 -53
- package/dist/js/node/builder/webpackPlugins/htmlBottomTemplate.js +0 -60
- package/dist/js/node/builder/webpackPlugins/routerPlugin.js +0 -135
- package/dist/js/node/commands/build.js +0 -112
- package/dist/js/node/commands/deploy.js +0 -51
- package/dist/js/node/commands/dev.js +0 -126
- package/dist/js/node/commands/index.js +0 -19
- package/dist/js/node/commands/inspect.js +0 -61
- package/dist/js/node/commands/serve.js +0 -83
- package/dist/js/node/config/default.js +0 -197
- package/dist/js/node/config/index.js +0 -34
- package/dist/js/node/config/initial/createHtmlConfig.js +0 -58
- package/dist/js/node/config/initial/createOutputConfig.js +0 -91
- package/dist/js/node/config/initial/createSourceConfig.js +0 -62
- package/dist/js/node/config/initial/createToolsConfig.js +0 -65
- package/dist/js/node/config/initial/index.js +0 -41
- package/dist/js/node/config/initial/inits.js +0 -175
- package/dist/js/node/config/initial/transformNormalizedConfig.js +0 -70
- package/dist/js/node/defineConfig.js +0 -49
- package/dist/js/node/exports/server.js +0 -27
- package/dist/js/node/hooks.js +0 -54
- package/dist/js/node/index.js +0 -235
- package/dist/js/node/initialize/index.js +0 -134
- package/dist/js/node/locale/en.js +0 -59
- package/dist/js/node/locale/index.js +0 -33
- package/dist/js/node/locale/zh.js +0 -59
- package/dist/js/node/schema/Schema.js +0 -63
- package/dist/js/node/schema/index.js +0 -118
- package/dist/js/node/schema/legacy.js +0 -169
- package/dist/js/node/types/config/deploy.js +0 -15
- package/dist/js/node/types/config/dev.js +0 -15
- package/dist/js/node/types/config/experiments.js +0 -15
- package/dist/js/node/types/config/html.js +0 -15
- package/dist/js/node/types/config/index.js +0 -17
- package/dist/js/node/types/config/output.js +0 -15
- package/dist/js/node/types/config/performance.js +0 -15
- package/dist/js/node/types/config/security.js +0 -15
- package/dist/js/node/types/config/source.js +0 -15
- package/dist/js/node/types/config/tools.js +0 -15
- package/dist/js/node/types/hooks.js +0 -15
- package/dist/js/node/types/index.js +0 -19
- package/dist/js/node/types/legacyConfig/deploy.js +0 -15
- package/dist/js/node/types/legacyConfig/dev.js +0 -15
- package/dist/js/node/types/legacyConfig/index.js +0 -15
- package/dist/js/node/types/legacyConfig/output.js +0 -15
- package/dist/js/node/types/legacyConfig/source.js +0 -15
- package/dist/js/node/types/legacyConfig/tools.js +0 -15
- package/dist/js/node/utils/config.js +0 -153
- package/dist/js/node/utils/createServer.js +0 -106
- package/dist/js/node/utils/env.js +0 -38
- package/dist/js/node/utils/generateWatchFiles.js +0 -85
- package/dist/js/node/utils/getSelectedEntries.js +0 -81
- package/dist/js/node/utils/getServerInternalPlugins.js +0 -79
- package/dist/js/node/utils/language.js +0 -31
- package/dist/js/node/utils/printInstructions.js +0 -54
- package/dist/js/node/utils/restart.js +0 -67
- package/dist/js/node/utils/routes.js +0 -59
- package/dist/js/node/utils/types.js +0 -15
- package/dist/js/treeshaking/analyze/constants.js +0 -40
- package/dist/js/treeshaking/analyze/generateCode.js +0 -485
- package/dist/js/treeshaking/analyze/getBundleEntry.js +0 -62
- package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +0 -233
- package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +0 -231
- package/dist/js/treeshaking/analyze/getClientRoutes/index.js +0 -3
- package/dist/js/treeshaking/analyze/getClientRoutes/utils.js +0 -23
- package/dist/js/treeshaking/analyze/getFileSystemEntry.js +0 -107
- package/dist/js/treeshaking/analyze/getHtmlTemplate.js +0 -302
- package/dist/js/treeshaking/analyze/getServerRoutes.js +0 -222
- package/dist/js/treeshaking/analyze/index.js +0 -697
- package/dist/js/treeshaking/analyze/isDefaultExportFunction.js +0 -47
- package/dist/js/treeshaking/analyze/makeLegalIdentifier.js +0 -13
- package/dist/js/treeshaking/analyze/nestedRoutes.js +0 -384
- package/dist/js/treeshaking/analyze/templates.js +0 -468
- package/dist/js/treeshaking/analyze/utils.js +0 -374
- package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +0 -304
- package/dist/js/treeshaking/builder/index.js +0 -374
- package/dist/js/treeshaking/builder/loaders/routerLoader.js +0 -13
- package/dist/js/treeshaking/builder/loaders/serverModuleLoader.js +0 -5
- package/dist/js/treeshaking/builder/share.js +0 -40
- package/dist/js/treeshaking/builder/webpackPlugins/htmlAsyncChunkPlugin.js +0 -110
- package/dist/js/treeshaking/builder/webpackPlugins/htmlBottomTemplate.js +0 -72
- package/dist/js/treeshaking/builder/webpackPlugins/routerPlugin.js +0 -343
- package/dist/js/treeshaking/commands/build.js +0 -291
- package/dist/js/treeshaking/commands/deploy.js +0 -154
- package/dist/js/treeshaking/commands/dev.js +0 -301
- package/dist/js/treeshaking/commands/index.js +0 -3
- package/dist/js/treeshaking/commands/inspect.js +0 -149
- package/dist/js/treeshaking/commands/serve.js +0 -199
- package/dist/js/treeshaking/config/default.js +0 -210
- package/dist/js/treeshaking/config/index.js +0 -3
- package/dist/js/treeshaking/config/initial/createHtmlConfig.js +0 -19
- package/dist/js/treeshaking/config/initial/createOutputConfig.js +0 -41
- package/dist/js/treeshaking/config/initial/createSourceConfig.js +0 -42
- package/dist/js/treeshaking/config/initial/createToolsConfig.js +0 -23
- package/dist/js/treeshaking/config/initial/index.js +0 -12
- package/dist/js/treeshaking/config/initial/inits.js +0 -209
- package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +0 -35
- package/dist/js/treeshaking/defineConfig.js +0 -61
- package/dist/js/treeshaking/exports/server.js +0 -2
- package/dist/js/treeshaking/hooks.js +0 -29
- package/dist/js/treeshaking/index.js +0 -706
- package/dist/js/treeshaking/initialize/index.js +0 -276
- package/dist/js/treeshaking/locale/en.js +0 -38
- package/dist/js/treeshaking/locale/index.js +0 -9
- package/dist/js/treeshaking/locale/zh.js +0 -38
- package/dist/js/treeshaking/schema/Schema.js +0 -273
- package/dist/js/treeshaking/schema/index.js +0 -181
- package/dist/js/treeshaking/schema/legacy.js +0 -337
- package/dist/js/treeshaking/types/config/deploy.js +0 -1
- package/dist/js/treeshaking/types/config/dev.js +0 -1
- package/dist/js/treeshaking/types/config/experiments.js +0 -1
- package/dist/js/treeshaking/types/config/html.js +0 -1
- package/dist/js/treeshaking/types/config/index.js +0 -1
- package/dist/js/treeshaking/types/config/output.js +0 -1
- package/dist/js/treeshaking/types/config/performance.js +0 -1
- package/dist/js/treeshaking/types/config/security.js +0 -1
- package/dist/js/treeshaking/types/config/source.js +0 -1
- package/dist/js/treeshaking/types/config/tools.js +0 -1
- package/dist/js/treeshaking/types/hooks.js +0 -1
- package/dist/js/treeshaking/types/index.js +0 -3
- package/dist/js/treeshaking/types/legacyConfig/deploy.js +0 -1
- package/dist/js/treeshaking/types/legacyConfig/dev.js +0 -1
- package/dist/js/treeshaking/types/legacyConfig/index.js +0 -1
- package/dist/js/treeshaking/types/legacyConfig/output.js +0 -1
- package/dist/js/treeshaking/types/legacyConfig/source.js +0 -1
- package/dist/js/treeshaking/types/legacyConfig/tools.js +0 -1
- package/dist/js/treeshaking/utils/config.js +0 -302
- package/dist/js/treeshaking/utils/createServer.js +0 -258
- package/dist/js/treeshaking/utils/env.js +0 -13
- package/dist/js/treeshaking/utils/generateWatchFiles.js +0 -214
- package/dist/js/treeshaking/utils/getSelectedEntries.js +0 -186
- package/dist/js/treeshaking/utils/getServerInternalPlugins.js +0 -210
- package/dist/js/treeshaking/utils/language.js +0 -6
- package/dist/js/treeshaking/utils/printInstructions.js +0 -152
- package/dist/js/treeshaking/utils/restart.js +0 -187
- package/dist/js/treeshaking/utils/routes.js +0 -153
- package/dist/js/treeshaking/utils/types.js +0 -1
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,63 @@
|
|
1
1
|
# @modern-js/app-tools
|
2
2
|
|
3
|
+
## 2.32.0
|
4
|
+
|
5
|
+
### Minor Changes
|
6
|
+
|
7
|
+
- 4323e68: feat: support client-data file
|
8
|
+
feat: 支持 client-data 文件
|
9
|
+
- 2447d64: feat: support ssr resources preload
|
10
|
+
feat: 支持 ssr 资源预加载
|
11
|
+
|
12
|
+
### Patch Changes
|
13
|
+
|
14
|
+
- e5a3fb4: fix: integration test, and export LoaderContext from utils
|
15
|
+
fix: 集成测试,然后导出 LoaderContext
|
16
|
+
- 3910eb8: fix: route.json fit ssr.preload
|
17
|
+
fix: route.json 适配 ssr.preload
|
18
|
+
- 6076166: fix: packaging errors found by publint
|
19
|
+
|
20
|
+
fix: 修复 publint 检测到的 packaging 问题
|
21
|
+
|
22
|
+
- c72980d: chore: When the page component exists, keep the layout component
|
23
|
+
chore: 当 page 组件存在时,保留 layout 组件
|
24
|
+
- 3149ccd: fix: should update asset when only html exists
|
25
|
+
fix: 只有当 html 存在时,才更新资源
|
26
|
+
- Updated dependencies [e6c7d33]
|
27
|
+
- Updated dependencies [e5a3fb4]
|
28
|
+
- Updated dependencies [6076166]
|
29
|
+
- Updated dependencies [5f7c714]
|
30
|
+
- Updated dependencies [6517032]
|
31
|
+
- Updated dependencies [a030aff]
|
32
|
+
- Updated dependencies [6d73519]
|
33
|
+
- Updated dependencies [83c1cf7]
|
34
|
+
- Updated dependencies [79658a0]
|
35
|
+
- Updated dependencies [0cc3981]
|
36
|
+
- Updated dependencies [ddcdef2]
|
37
|
+
- Updated dependencies [4323e68]
|
38
|
+
- Updated dependencies [3c91100]
|
39
|
+
- Updated dependencies [2447d64]
|
40
|
+
- Updated dependencies [5255eba]
|
41
|
+
- @modern-js/prod-server@2.32.0
|
42
|
+
- @modern-js/utils@2.32.0
|
43
|
+
- @modern-js/builder-webpack-provider@2.32.0
|
44
|
+
- @modern-js/builder-rspack-provider@2.32.0
|
45
|
+
- @modern-js/node-bundle-require@2.32.0
|
46
|
+
- @modern-js/plugin-data-loader@2.32.0
|
47
|
+
- @modern-js/plugin@2.32.0
|
48
|
+
- @modern-js/types@2.32.0
|
49
|
+
- @modern-js/server-core@2.32.0
|
50
|
+
- @modern-js/core@2.32.0
|
51
|
+
- @modern-js/server@2.32.0
|
52
|
+
- @modern-js/builder-shared@2.32.0
|
53
|
+
- @modern-js/builder@2.32.0
|
54
|
+
- @modern-js/builder-plugin-esbuild@2.32.0
|
55
|
+
- @modern-js/builder-plugin-node-polyfill@2.32.0
|
56
|
+
- @modern-js/plugin-i18n@2.32.0
|
57
|
+
- @modern-js/plugin-lint@2.32.0
|
58
|
+
- @modern-js/new-action@2.32.0
|
59
|
+
- @modern-js/upgrade@2.32.0
|
60
|
+
|
3
61
|
## 2.31.2
|
4
62
|
|
5
63
|
### Patch Changes
|
package/LICENSE
CHANGED
@@ -89,7 +89,7 @@ const collectHtmlRoutes = (entrypoints, appContext, config) => {
|
|
89
89
|
const entryOptions = (0, _utils.getEntryOptions)(entryName, isMainEntry, ssr, ssrByEntries, packageName);
|
90
90
|
const isSSR = Boolean(entryOptions);
|
91
91
|
const isWorker = Boolean(workerSSR);
|
92
|
-
const isStream = typeof entryOptions === "object" && entryOptions.mode === "stream";
|
92
|
+
const isStream = typeof entryOptions === "object" && (entryOptions.mode === "stream" || Boolean(entryOptions.preload));
|
93
93
|
const { resHeaders } = ((_routes = routes) === null || _routes === void 0 ? void 0 : _routes[entryName]) || {};
|
94
94
|
let route = {
|
95
95
|
urlPath: `/${isMainEntry ? "" : entryName}`,
|
package/dist/cjs/index.js
CHANGED
@@ -219,10 +219,7 @@ const appTools = (options = {
|
|
219
219
|
},
|
220
220
|
async beforeGenerateRoutes({ entrypoint, code }) {
|
221
221
|
const { distDirectory } = api.useAppContext();
|
222
|
-
|
223
|
-
await _utils.fs.mkdir(distDirectory);
|
224
|
-
}
|
225
|
-
await _utils.fs.writeJSON(_path.default.resolve(distDirectory, _utils.NESTED_ROUTE_SPEC_FILE), nestedRoutes);
|
222
|
+
await _utils.fs.outputJSON(_path.default.resolve(distDirectory, _utils.NESTED_ROUTE_SPEC_FILE), nestedRoutes);
|
226
223
|
return {
|
227
224
|
entrypoint,
|
228
225
|
code
|
@@ -80,7 +80,7 @@ var collectHtmlRoutes = function(entrypoints, appContext, config) {
|
|
80
80
|
var entryOptions = getEntryOptions(entryName, isMainEntry, ssr, ssrByEntries, packageName);
|
81
81
|
var isSSR = Boolean(entryOptions);
|
82
82
|
var isWorker = Boolean(workerSSR);
|
83
|
-
var isStream = typeof entryOptions === "object" && entryOptions.mode === "stream";
|
83
|
+
var isStream = typeof entryOptions === "object" && (entryOptions.mode === "stream" || Boolean(entryOptions.preload));
|
84
84
|
var resHeaders = (((_routes = routes) === null || _routes === void 0 ? void 0 : _routes[entryName]) || {}).resHeaders;
|
85
85
|
var route = {
|
86
86
|
urlPath: "/".concat(isMainEntry ? "" : entryName),
|
package/dist/esm/index.js
CHANGED
@@ -626,24 +626,11 @@ export var appTools = function() {
|
|
626
626
|
switch (_state.label) {
|
627
627
|
case 0:
|
628
628
|
distDirectory = api.useAppContext().distDirectory;
|
629
|
-
if (!!fs.existsSync(distDirectory))
|
630
|
-
return [
|
631
|
-
3,
|
632
|
-
2
|
633
|
-
];
|
634
629
|
return [
|
635
630
|
4,
|
636
|
-
fs.
|
631
|
+
fs.outputJSON(path.resolve(distDirectory, NESTED_ROUTE_SPEC_FILE), nestedRoutes)
|
637
632
|
];
|
638
633
|
case 1:
|
639
|
-
_state.sent();
|
640
|
-
_state.label = 2;
|
641
|
-
case 2:
|
642
|
-
return [
|
643
|
-
4,
|
644
|
-
fs.writeJSON(path.resolve(distDirectory, NESTED_ROUTE_SPEC_FILE), nestedRoutes)
|
645
|
-
];
|
646
|
-
case 3:
|
647
634
|
_state.sent();
|
648
635
|
return [
|
649
636
|
2,
|
@@ -78,7 +78,7 @@ const collectHtmlRoutes = (entrypoints, appContext, config) => {
|
|
78
78
|
const entryOptions = getEntryOptions(entryName, isMainEntry, ssr, ssrByEntries, packageName);
|
79
79
|
const isSSR = Boolean(entryOptions);
|
80
80
|
const isWorker = Boolean(workerSSR);
|
81
|
-
const isStream = typeof entryOptions === "object" && entryOptions.mode === "stream";
|
81
|
+
const isStream = typeof entryOptions === "object" && (entryOptions.mode === "stream" || Boolean(entryOptions.preload));
|
82
82
|
const { resHeaders } = ((_routes = routes) === null || _routes === void 0 ? void 0 : _routes[entryName]) || {};
|
83
83
|
let route = {
|
84
84
|
urlPath: `/${isMainEntry ? "" : entryName}`,
|
package/dist/esm-node/index.js
CHANGED
@@ -185,10 +185,7 @@ export const appTools = (options = {
|
|
185
185
|
},
|
186
186
|
async beforeGenerateRoutes({ entrypoint, code }) {
|
187
187
|
const { distDirectory } = api.useAppContext();
|
188
|
-
|
189
|
-
await fs.mkdir(distDirectory);
|
190
|
-
}
|
191
|
-
await fs.writeJSON(path.resolve(distDirectory, NESTED_ROUTE_SPEC_FILE), nestedRoutes);
|
188
|
+
await fs.outputJSON(path.resolve(distDirectory, NESTED_ROUTE_SPEC_FILE), nestedRoutes);
|
192
189
|
return {
|
193
190
|
entrypoint,
|
194
191
|
code
|
package/package.json
CHANGED
@@ -15,7 +15,7 @@
|
|
15
15
|
"modern",
|
16
16
|
"modern.js"
|
17
17
|
],
|
18
|
-
"version": "2.
|
18
|
+
"version": "2.32.0",
|
19
19
|
"jsnext:source": "./src/index.ts",
|
20
20
|
"types": "./dist/types/index.d.ts",
|
21
21
|
"main": "./dist/cjs/index.js",
|
@@ -73,24 +73,24 @@
|
|
73
73
|
"esbuild": "0.17.19",
|
74
74
|
"rspack-plugin-virtual-module": "0.1.7",
|
75
75
|
"@swc/helpers": "0.5.1",
|
76
|
-
"@modern-js/builder": "2.
|
77
|
-
"@modern-js/builder-
|
78
|
-
"@modern-js/builder-
|
79
|
-
"@modern-js/
|
80
|
-
"@modern-js/
|
81
|
-
"@modern-js/
|
82
|
-
"@modern-js/
|
83
|
-
"@modern-js/
|
84
|
-
"@modern-js/
|
85
|
-
"@modern-js/
|
86
|
-
"@modern-js/
|
87
|
-
"@modern-js/
|
88
|
-
"@modern-js/
|
89
|
-
"@modern-js/server
|
90
|
-
"@modern-js/
|
91
|
-
"@modern-js/
|
92
|
-
"@modern-js/
|
93
|
-
"@modern-js/
|
76
|
+
"@modern-js/builder": "2.32.0",
|
77
|
+
"@modern-js/builder-plugin-esbuild": "2.32.0",
|
78
|
+
"@modern-js/builder-plugin-node-polyfill": "2.32.0",
|
79
|
+
"@modern-js/builder-shared": "2.32.0",
|
80
|
+
"@modern-js/builder-webpack-provider": "2.32.0",
|
81
|
+
"@modern-js/core": "2.32.0",
|
82
|
+
"@modern-js/new-action": "2.32.0",
|
83
|
+
"@modern-js/node-bundle-require": "2.32.0",
|
84
|
+
"@modern-js/plugin": "2.32.0",
|
85
|
+
"@modern-js/plugin-data-loader": "2.32.0",
|
86
|
+
"@modern-js/plugin-i18n": "2.32.0",
|
87
|
+
"@modern-js/plugin-lint": "2.32.0",
|
88
|
+
"@modern-js/prod-server": "2.32.0",
|
89
|
+
"@modern-js/server": "2.32.0",
|
90
|
+
"@modern-js/types": "2.32.0",
|
91
|
+
"@modern-js/upgrade": "2.32.0",
|
92
|
+
"@modern-js/utils": "2.32.0",
|
93
|
+
"@modern-js/server-core": "2.32.0"
|
94
94
|
},
|
95
95
|
"devDependencies": {
|
96
96
|
"@types/babel__traverse": "^7.14.2",
|
@@ -99,13 +99,13 @@
|
|
99
99
|
"jest": "^29",
|
100
100
|
"typescript": "^5",
|
101
101
|
"webpack": "^5.88.1",
|
102
|
-
"@modern-js/builder-
|
103
|
-
"@
|
104
|
-
"@scripts/
|
105
|
-
"@
|
102
|
+
"@modern-js/builder-plugin-swc": "2.32.0",
|
103
|
+
"@modern-js/builder-rspack-provider": "2.32.0",
|
104
|
+
"@scripts/build": "2.32.0",
|
105
|
+
"@scripts/jest-config": "2.32.0"
|
106
106
|
},
|
107
107
|
"peerDependencies": {
|
108
|
-
"@modern-js/builder-rspack-provider": "^2.
|
108
|
+
"@modern-js/builder-rspack-provider": "^2.32.0"
|
109
109
|
},
|
110
110
|
"peerDependenciesMeta": {
|
111
111
|
"@modern-js/builder-rspack-provider": {
|
@@ -1,54 +0,0 @@
|
|
1
|
-
const JS_EXTENSIONS = [".js", ".ts", ".jsx", ".tsx"];
|
2
|
-
const INDEX_FILE_NAME = "index";
|
3
|
-
const APP_FILE_NAME = "App";
|
4
|
-
const PAGES_DIR_NAME = "pages";
|
5
|
-
const NESTED_ROUTES_DIR = "routes";
|
6
|
-
const FILE_SYSTEM_ROUTES_FILE_NAME = "routes.js";
|
7
|
-
const LOADER_EXPORT_NAME = "loader";
|
8
|
-
const TEMP_LOADERS_DIR = "__loaders__";
|
9
|
-
const ENTRY_POINT_FILE_NAME = "index.js";
|
10
|
-
const ENTRY_BOOTSTRAP_FILE_NAME = "bootstrap.js";
|
11
|
-
const FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP = /^\[(\S+)\]([*+?]?)$/;
|
12
|
-
const FILE_SYSTEM_ROUTES_LAYOUT = "_layout";
|
13
|
-
const FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT = "_app";
|
14
|
-
const FILE_SYSTEM_ROUTES_INDEX = "index";
|
15
|
-
const FILE_SYSTEM_ROUTES_IGNORED_REGEX = /\.(d|test|spec|e2e)\.(js|jsx|ts|tsx)$/;
|
16
|
-
const HTML_PARTIALS_FOLDER = "html";
|
17
|
-
const HTML_PARTIALS_EXTENSIONS = [".htm", ".html", ".ejs"];
|
18
|
-
const FILE_SYSTEM_ROUTES_COMPONENTS_DIR = "internal_components";
|
19
|
-
const NESTED_ROUTE = {
|
20
|
-
LAYOUT_FILE: "layout",
|
21
|
-
LAYOUT_LOADER_FILE: "layout.loader",
|
22
|
-
PAGE_FILE: "page",
|
23
|
-
PAGE_LOADER_FILE: "page.loader",
|
24
|
-
LOADING_FILE: "loading",
|
25
|
-
ERROR_FILE: "error",
|
26
|
-
LOADER_FILE: "loader"
|
27
|
-
};
|
28
|
-
const APP_CONFIG_NAME = "config";
|
29
|
-
const APP_INIT_EXPORTED = "init";
|
30
|
-
const APP_INIT_IMPORTED = "appInit";
|
31
|
-
export {
|
32
|
-
APP_CONFIG_NAME,
|
33
|
-
APP_FILE_NAME,
|
34
|
-
APP_INIT_EXPORTED,
|
35
|
-
APP_INIT_IMPORTED,
|
36
|
-
ENTRY_BOOTSTRAP_FILE_NAME,
|
37
|
-
ENTRY_POINT_FILE_NAME,
|
38
|
-
FILE_SYSTEM_ROUTES_COMPONENTS_DIR,
|
39
|
-
FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP,
|
40
|
-
FILE_SYSTEM_ROUTES_FILE_NAME,
|
41
|
-
FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT,
|
42
|
-
FILE_SYSTEM_ROUTES_IGNORED_REGEX,
|
43
|
-
FILE_SYSTEM_ROUTES_INDEX,
|
44
|
-
FILE_SYSTEM_ROUTES_LAYOUT,
|
45
|
-
HTML_PARTIALS_EXTENSIONS,
|
46
|
-
HTML_PARTIALS_FOLDER,
|
47
|
-
INDEX_FILE_NAME,
|
48
|
-
JS_EXTENSIONS,
|
49
|
-
LOADER_EXPORT_NAME,
|
50
|
-
NESTED_ROUTE,
|
51
|
-
NESTED_ROUTES_DIR,
|
52
|
-
PAGES_DIR_NAME,
|
53
|
-
TEMP_LOADERS_DIR
|
54
|
-
};
|
@@ -1,247 +0,0 @@
|
|
1
|
-
var __async = (__this, __arguments, generator) => {
|
2
|
-
return new Promise((resolve, reject) => {
|
3
|
-
var fulfilled = (value) => {
|
4
|
-
try {
|
5
|
-
step(generator.next(value));
|
6
|
-
} catch (e) {
|
7
|
-
reject(e);
|
8
|
-
}
|
9
|
-
};
|
10
|
-
var rejected = (value) => {
|
11
|
-
try {
|
12
|
-
step(generator.throw(value));
|
13
|
-
} catch (e) {
|
14
|
-
reject(e);
|
15
|
-
}
|
16
|
-
};
|
17
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
18
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
19
|
-
});
|
20
|
-
};
|
21
|
-
import path from "path";
|
22
|
-
import { fs, getEntryOptions, logger } from "@modern-js/utils";
|
23
|
-
import {
|
24
|
-
useResolvedConfigContext
|
25
|
-
} from "@modern-js/core";
|
26
|
-
import * as templates from "./templates";
|
27
|
-
import { getClientRoutes, getClientRoutesLegacy } from "./getClientRoutes";
|
28
|
-
import {
|
29
|
-
FILE_SYSTEM_ROUTES_FILE_NAME,
|
30
|
-
ENTRY_POINT_FILE_NAME,
|
31
|
-
ENTRY_BOOTSTRAP_FILE_NAME
|
32
|
-
} from "./constants";
|
33
|
-
import { getDefaultImports, getServerLoadersFile } from "./utils";
|
34
|
-
import { walk } from "./nestedRoutes";
|
35
|
-
const createImportSpecifier = (specifiers) => {
|
36
|
-
let defaults = "";
|
37
|
-
const named = [];
|
38
|
-
for (const { local, imported } of specifiers) {
|
39
|
-
if (local && imported) {
|
40
|
-
named.push(`${imported} as ${local}`);
|
41
|
-
} else if (local) {
|
42
|
-
defaults = local;
|
43
|
-
} else {
|
44
|
-
named.push(imported);
|
45
|
-
}
|
46
|
-
}
|
47
|
-
if (defaults && named.length) {
|
48
|
-
return `${defaults}, { ${named.join(", ")} }`;
|
49
|
-
} else if (defaults) {
|
50
|
-
return defaults;
|
51
|
-
} else {
|
52
|
-
return `{ ${named.join(", ")} }`;
|
53
|
-
}
|
54
|
-
};
|
55
|
-
const createImportStatements = (statements) => {
|
56
|
-
var _a, _b;
|
57
|
-
const deDuplicated = [];
|
58
|
-
const seen = /* @__PURE__ */ new Map();
|
59
|
-
for (const { value, specifiers, initialize } of statements) {
|
60
|
-
if (!seen.has(value)) {
|
61
|
-
deDuplicated.push({
|
62
|
-
value,
|
63
|
-
specifiers,
|
64
|
-
initialize
|
65
|
-
});
|
66
|
-
seen.set(value, specifiers);
|
67
|
-
} else {
|
68
|
-
seen.get(value).push(...specifiers);
|
69
|
-
const modifyIndex = deDuplicated.findIndex((v) => v.value === value);
|
70
|
-
const originInitialize = (_b = (_a = deDuplicated[modifyIndex]) == null ? void 0 : _a.initialize) != null ? _b : "";
|
71
|
-
deDuplicated[modifyIndex].initialize = originInitialize.concat(
|
72
|
-
`
|
73
|
-
${initialize || ""}`
|
74
|
-
);
|
75
|
-
}
|
76
|
-
}
|
77
|
-
return deDuplicated.map(
|
78
|
-
({ value, specifiers, initialize }) => `import ${createImportSpecifier(specifiers)} from '${value}';
|
79
|
-
${initialize || ""}`
|
80
|
-
).join("\n");
|
81
|
-
};
|
82
|
-
const generateCode = (appContext, config, entrypoints, api) => __async(void 0, null, function* () {
|
83
|
-
var _a, _b, _c;
|
84
|
-
const {
|
85
|
-
internalDirectory,
|
86
|
-
srcDirectory,
|
87
|
-
internalDirAlias,
|
88
|
-
internalSrcAlias,
|
89
|
-
packageName
|
90
|
-
} = appContext;
|
91
|
-
const hookRunners = api.useHookRunners();
|
92
|
-
const isV5 = typeof ((_a = config.runtime) == null ? void 0 : _a.router) !== "boolean" && ((_c = (_b = config == null ? void 0 : config.runtime) == null ? void 0 : _b.router) == null ? void 0 : _c.mode) === "react-router-5";
|
93
|
-
const { mountId } = config.html;
|
94
|
-
const getRoutes = isV5 ? getClientRoutesLegacy : getClientRoutes;
|
95
|
-
yield Promise.all(entrypoints.map(generateEntryCode));
|
96
|
-
function generateEntryCode(entrypoint) {
|
97
|
-
return __async(this, null, function* () {
|
98
|
-
const { entryName, isAutoMount, customBootstrap, fileSystemRoutes } = entrypoint;
|
99
|
-
if (isAutoMount) {
|
100
|
-
if (fileSystemRoutes) {
|
101
|
-
let initialRoutes = [];
|
102
|
-
let nestedRoute = null;
|
103
|
-
if (entrypoint.entry) {
|
104
|
-
initialRoutes = getRoutes({
|
105
|
-
entrypoint,
|
106
|
-
srcDirectory,
|
107
|
-
srcAlias: internalSrcAlias,
|
108
|
-
internalDirectory,
|
109
|
-
internalDirAlias
|
110
|
-
});
|
111
|
-
}
|
112
|
-
if (entrypoint.nestedRoutesEntry) {
|
113
|
-
if (!isV5) {
|
114
|
-
nestedRoute = yield walk(
|
115
|
-
entrypoint.nestedRoutesEntry,
|
116
|
-
entrypoint.nestedRoutesEntry,
|
117
|
-
{
|
118
|
-
name: internalSrcAlias,
|
119
|
-
basename: srcDirectory
|
120
|
-
},
|
121
|
-
entrypoint.entryName
|
122
|
-
);
|
123
|
-
if (nestedRoute) {
|
124
|
-
initialRoutes.unshift(nestedRoute);
|
125
|
-
}
|
126
|
-
} else {
|
127
|
-
logger.error("Nested routes is not supported in legacy mode.");
|
128
|
-
process.exit(1);
|
129
|
-
}
|
130
|
-
}
|
131
|
-
const { routes } = yield hookRunners.modifyFileSystemRoutes({
|
132
|
-
entrypoint,
|
133
|
-
routes: initialRoutes
|
134
|
-
});
|
135
|
-
const config2 = useResolvedConfigContext();
|
136
|
-
const ssr = getEntryOptions(
|
137
|
-
entryName,
|
138
|
-
config2.server.ssr,
|
139
|
-
config2.server.ssrByEntries,
|
140
|
-
packageName
|
141
|
-
);
|
142
|
-
let mode;
|
143
|
-
if (ssr) {
|
144
|
-
mode = typeof ssr === "object" ? ssr.mode || "string" : "string";
|
145
|
-
} else {
|
146
|
-
mode = false;
|
147
|
-
}
|
148
|
-
if (mode === "stream") {
|
149
|
-
const hasPageRoute = routes.some(
|
150
|
-
(route) => "type" in route && route.type === "page"
|
151
|
-
);
|
152
|
-
if (hasPageRoute) {
|
153
|
-
logger.error(
|
154
|
-
"Streaming ssr is not supported when pages dir exists"
|
155
|
-
);
|
156
|
-
process.exit(1);
|
157
|
-
}
|
158
|
-
}
|
159
|
-
const { code: code2 } = yield hookRunners.beforeGenerateRoutes({
|
160
|
-
entrypoint,
|
161
|
-
code: yield templates.fileSystemRoutes({
|
162
|
-
routes,
|
163
|
-
ssrMode: mode,
|
164
|
-
nestedRoutesEntry: entrypoint.nestedRoutesEntry,
|
165
|
-
entryName: entrypoint.entryName,
|
166
|
-
internalDirectory
|
167
|
-
})
|
168
|
-
});
|
169
|
-
if (entrypoint.nestedRoutesEntry && mode) {
|
170
|
-
const routesServerFile = getServerLoadersFile(
|
171
|
-
internalDirectory,
|
172
|
-
entryName
|
173
|
-
);
|
174
|
-
const code3 = templates.routesForServer({
|
175
|
-
routes
|
176
|
-
});
|
177
|
-
yield fs.ensureFile(routesServerFile);
|
178
|
-
yield fs.writeFile(routesServerFile, code3);
|
179
|
-
}
|
180
|
-
fs.outputFileSync(
|
181
|
-
path.resolve(
|
182
|
-
internalDirectory,
|
183
|
-
`./${entryName}/${FILE_SYSTEM_ROUTES_FILE_NAME}`
|
184
|
-
),
|
185
|
-
code2,
|
186
|
-
"utf8"
|
187
|
-
);
|
188
|
-
}
|
189
|
-
const { imports: importStatements } = yield hookRunners.modifyEntryImports({
|
190
|
-
entrypoint,
|
191
|
-
imports: getDefaultImports({
|
192
|
-
entrypoint,
|
193
|
-
srcDirectory,
|
194
|
-
internalSrcAlias,
|
195
|
-
internalDirAlias,
|
196
|
-
internalDirectory
|
197
|
-
})
|
198
|
-
});
|
199
|
-
const { plugins } = yield hookRunners.modifyEntryRuntimePlugins({
|
200
|
-
entrypoint,
|
201
|
-
plugins: []
|
202
|
-
});
|
203
|
-
const { code: renderFunction } = yield hookRunners.modifyEntryRenderFunction({
|
204
|
-
entrypoint,
|
205
|
-
code: templates.renderFunction({
|
206
|
-
plugins,
|
207
|
-
customBootstrap,
|
208
|
-
fileSystemRoutes
|
209
|
-
})
|
210
|
-
});
|
211
|
-
const { exportStatement } = yield hookRunners.modifyEntryExport({
|
212
|
-
entrypoint,
|
213
|
-
exportStatement: "export default AppWrapper;"
|
214
|
-
});
|
215
|
-
const code = templates.index({
|
216
|
-
mountId,
|
217
|
-
imports: createImportStatements(importStatements),
|
218
|
-
renderFunction,
|
219
|
-
exportStatement
|
220
|
-
});
|
221
|
-
const entryFile = path.resolve(
|
222
|
-
internalDirectory,
|
223
|
-
`./${entryName}/${ENTRY_POINT_FILE_NAME}`
|
224
|
-
);
|
225
|
-
entrypoint.entry = entryFile;
|
226
|
-
if (config.source.enableAsyncEntry) {
|
227
|
-
const { code: asyncEntryCode } = yield hookRunners.modifyAsyncEntry({
|
228
|
-
entrypoint,
|
229
|
-
code: `import('./${ENTRY_BOOTSTRAP_FILE_NAME}');`
|
230
|
-
});
|
231
|
-
fs.outputFileSync(entryFile, asyncEntryCode, "utf8");
|
232
|
-
const bootstrapFile = path.resolve(
|
233
|
-
internalDirectory,
|
234
|
-
`./${entryName}/${ENTRY_BOOTSTRAP_FILE_NAME}`
|
235
|
-
);
|
236
|
-
fs.outputFileSync(bootstrapFile, code, "utf8");
|
237
|
-
} else {
|
238
|
-
fs.outputFileSync(entryFile, code, "utf8");
|
239
|
-
}
|
240
|
-
}
|
241
|
-
});
|
242
|
-
}
|
243
|
-
});
|
244
|
-
export {
|
245
|
-
createImportStatements,
|
246
|
-
generateCode
|
247
|
-
};
|
@@ -1,71 +0,0 @@
|
|
1
|
-
import path from "path";
|
2
|
-
import {
|
3
|
-
ensureAbsolutePath,
|
4
|
-
fs,
|
5
|
-
findExists,
|
6
|
-
MAIN_ENTRY_NAME
|
7
|
-
} from "@modern-js/utils";
|
8
|
-
import { getFileSystemEntry } from "./getFileSystemEntry";
|
9
|
-
import { JS_EXTENSIONS } from "./constants";
|
10
|
-
const ensureExtensions = (file) => {
|
11
|
-
if (!path.extname(file)) {
|
12
|
-
return findExists(JS_EXTENSIONS.map((ext) => `${file}${ext}`)) || file;
|
13
|
-
}
|
14
|
-
return file;
|
15
|
-
};
|
16
|
-
const ifAlreadyExists = (entrypoints, checked) => entrypoints.some((entrypoint) => {
|
17
|
-
if (ensureExtensions(entrypoint.entry) === ensureExtensions(checked.entry)) {
|
18
|
-
checked.entryName = entrypoint.entryName;
|
19
|
-
return true;
|
20
|
-
}
|
21
|
-
if (entrypoint.entry.startsWith(checked.entry) || checked.entry.startsWith(entrypoint.entry)) {
|
22
|
-
throw new Error(
|
23
|
-
`Entry configuration conflicts
|
24
|
-
Your configuration: ${checked.entry}.
|
25
|
-
Default entrypoint: ${entrypoint.entry}
|
26
|
-
Please reset source.entries or set source.disableDefaultEntries to disable the default entry rules.`
|
27
|
-
);
|
28
|
-
}
|
29
|
-
return false;
|
30
|
-
});
|
31
|
-
const getBundleEntry = (appContext, config) => {
|
32
|
-
const { appDirectory, packageName } = appContext;
|
33
|
-
const {
|
34
|
-
source: { disableDefaultEntries, entries, entriesDir }
|
35
|
-
} = config;
|
36
|
-
const defaults = disableDefaultEntries ? [] : getFileSystemEntry(appContext, config);
|
37
|
-
if (entries) {
|
38
|
-
Object.keys(entries).forEach((name) => {
|
39
|
-
const value = entries[name];
|
40
|
-
const entrypoint = typeof value === "string" ? {
|
41
|
-
entryName: name,
|
42
|
-
entry: ensureAbsolutePath(appDirectory, value),
|
43
|
-
isAutoMount: true,
|
44
|
-
fileSystemRoutes: fs.statSync(ensureAbsolutePath(appDirectory, value)).isDirectory() ? {} : void 0
|
45
|
-
} : {
|
46
|
-
entryName: name,
|
47
|
-
entry: ensureAbsolutePath(appDirectory, value.entry),
|
48
|
-
isAutoMount: !value.disableMount,
|
49
|
-
customBootstrap: value.customBootstrap && ensureAbsolutePath(appDirectory, value.customBootstrap),
|
50
|
-
fileSystemRoutes: fs.statSync(ensureAbsolutePath(appDirectory, value.entry)).isDirectory() ? {} : void 0
|
51
|
-
};
|
52
|
-
if (entrypoint.fileSystemRoutes) {
|
53
|
-
entrypoint.nestedRoutesEntry = entrypoint.entry;
|
54
|
-
}
|
55
|
-
if (!ifAlreadyExists(defaults, entrypoint)) {
|
56
|
-
defaults.push(entrypoint);
|
57
|
-
}
|
58
|
-
});
|
59
|
-
}
|
60
|
-
if (!disableDefaultEntries) {
|
61
|
-
const entriesDirAbs = ensureAbsolutePath(appDirectory, entriesDir || "");
|
62
|
-
const found = defaults.find(
|
63
|
-
({ entryName, entry, nestedRoutesEntry = "" }) => entryName === packageName || path.dirname(entry) === entriesDirAbs || path.dirname(nestedRoutesEntry) === entriesDirAbs
|
64
|
-
);
|
65
|
-
found && (found.entryName = MAIN_ENTRY_NAME);
|
66
|
-
}
|
67
|
-
return defaults;
|
68
|
-
};
|
69
|
-
export {
|
70
|
-
getBundleEntry
|
71
|
-
};
|