@modern-js/app-tools 0.0.0-next-1104a9f18 → 0.0.0-next-c835d71

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 CHANGED
@@ -1,43 +1,46 @@
1
1
  # @modern-js/app-tools
2
2
 
3
- ## 0.0.0-next-1104a9f18
3
+ ## 0.0.0-next-c835d71
4
4
 
5
5
  ### Minor Changes
6
6
 
7
- - ab1e8065c: feat: support router-plugin in rspack bundler.
7
+ - ab1e8065cb: feat: support router-plugin in rspack bundler.
8
8
  feat: 在 rspack bundler 里支持 router-plugin
9
9
 
10
10
  ### Patch Changes
11
11
 
12
- - 1104a9f18: feat: support start web service only
12
+ - 1104a9f18b: feat: support start web service only
13
13
  feat: 支持只启动 web 服务
14
- - 2b6b1a014: refactor: app-tools builder
14
+ - c835d714bc: fix: nested routes in ssg
15
+ fix: 修复嵌套路由在 SSG 中的问题
16
+ - 2b6b1a014c: refactor: app-tools builder
15
17
  refactor: 重构 app-tools builder
16
- - Updated dependencies [ea7bb41e3]
17
- - Updated dependencies [0cf8540ff]
18
- - Updated dependencies [bd369a89a]
19
- - Updated dependencies [bc943c9b0]
20
- - Updated dependencies [1104a9f18]
21
- - Updated dependencies [2c1151271]
22
- - Updated dependencies [457ee832b]
23
- - @modern-js/server@0.0.0-next-1104a9f18
24
- - @modern-js/plugin-data-loader@0.0.0-next-1104a9f18
25
- - @modern-js/builder@0.0.0-next-1104a9f18
26
- - @modern-js/builder-shared@0.0.0-next-1104a9f18
27
- - @modern-js/builder-rspack-provider@0.0.0-next-1104a9f18
28
- - @modern-js/prod-server@0.0.0-next-1104a9f18
29
- - @modern-js/utils@0.0.0-next-1104a9f18
30
- - @modern-js/builder-webpack-provider@0.0.0-next-1104a9f18
31
- - @modern-js/builder-plugin-esbuild@0.0.0-next-1104a9f18
32
- - @modern-js/builder-plugin-node-polyfill@0.0.0-next-1104a9f18
33
- - @modern-js/core@0.0.0-next-1104a9f18
34
- - @modern-js/plugin-i18n@0.0.0-next-1104a9f18
35
- - @modern-js/plugin-lint@0.0.0-next-1104a9f18
36
- - @modern-js/new-action@0.0.0-next-1104a9f18
37
- - @modern-js/node-bundle-require@0.0.0-next-1104a9f18
38
- - @modern-js/upgrade@0.0.0-next-1104a9f18
39
- - @modern-js/plugin@0.0.0-next-1104a9f18
40
- - @modern-js/types@0.0.0-next-1104a9f18
18
+ - Updated dependencies [ea7bb41e30]
19
+ - Updated dependencies [0cf8540ffe]
20
+ - Updated dependencies [bd369a89a4]
21
+ - Updated dependencies [bc943c9b04]
22
+ - Updated dependencies [1104a9f18b]
23
+ - Updated dependencies [2c1151271d]
24
+ - Updated dependencies [c835d714bc]
25
+ - Updated dependencies [457ee832b9]
26
+ - @modern-js/server@0.0.0-next-c835d71
27
+ - @modern-js/plugin-data-loader@0.0.0-next-c835d71
28
+ - @modern-js/builder@0.0.0-next-c835d71
29
+ - @modern-js/builder-shared@0.0.0-next-c835d71
30
+ - @modern-js/builder-rspack-provider@0.0.0-next-c835d71
31
+ - @modern-js/prod-server@0.0.0-next-c835d71
32
+ - @modern-js/utils@0.0.0-next-c835d71
33
+ - @modern-js/builder-webpack-provider@0.0.0-next-c835d71
34
+ - @modern-js/types@0.0.0-next-c835d71
35
+ - @modern-js/builder-plugin-esbuild@0.0.0-next-c835d71
36
+ - @modern-js/builder-plugin-node-polyfill@0.0.0-next-c835d71
37
+ - @modern-js/core@0.0.0-next-c835d71
38
+ - @modern-js/plugin-i18n@0.0.0-next-c835d71
39
+ - @modern-js/plugin-lint@0.0.0-next-c835d71
40
+ - @modern-js/new-action@0.0.0-next-c835d71
41
+ - @modern-js/node-bundle-require@0.0.0-next-c835d71
42
+ - @modern-js/upgrade@0.0.0-next-c835d71
43
+ - @modern-js/plugin@0.0.0-next-c835d71
41
44
 
42
45
  ## 2.7.0
43
46
 
@@ -138,6 +138,7 @@ const generateCode = async (appContext, config, entrypoints, api) => {
138
138
  config2.server.ssrByEntries,
139
139
  packageName
140
140
  );
141
+ const useSSG = (0, import_utils.isSSGEntry)(config2, entryName, entrypoints);
141
142
  let mode;
142
143
  if (ssr) {
143
144
  mode = typeof ssr === "object" ? ssr.mode || "string" : "string";
@@ -157,13 +158,13 @@ const generateCode = async (appContext, config, entrypoints, api) => {
157
158
  entrypoint,
158
159
  code: await templates.fileSystemRoutes({
159
160
  routes,
160
- ssrMode: mode,
161
+ ssrMode: useSSG ? "string" : mode,
161
162
  nestedRoutesEntry: entrypoint.nestedRoutesEntry,
162
163
  entryName: entrypoint.entryName,
163
164
  internalDirectory
164
165
  })
165
166
  });
166
- if (entrypoint.nestedRoutesEntry && mode) {
167
+ if (entrypoint.nestedRoutesEntry && (0, import_utils.isUseSSRBundle)(config2)) {
167
168
  const routesServerFile = (0, import_utils2.getServerLoadersFile)(
168
169
  internalDirectory,
169
170
  entryName
@@ -205,7 +205,12 @@ var analyze_default = ({
205
205
  resolvedConfig.server.ssrByEntries,
206
206
  packageName
207
207
  );
208
- if (entrypoint.nestedRoutesEntry && ssr && name === "server") {
208
+ const useSSG = (0, import_utils.isSSGEntry)(
209
+ resolvedConfig,
210
+ entryName,
211
+ entrypoints
212
+ );
213
+ if (entrypoint.nestedRoutesEntry && (ssr || useSSG) && name === "server") {
209
214
  const serverLoaderRuntime = require.resolve("@modern-js/plugin-data-loader/runtime");
210
215
  const serverLoadersFile = (0, import_utils2.getServerLoadersFile)(
211
216
  internalDirectory,
@@ -148,7 +148,7 @@ var __generator = this && this.__generator || function(thisArg, body) {
148
148
  }
149
149
  };
150
150
  import path from "path";
151
- import { fs, getEntryOptions, isRouterV5, logger } from "@modern-js/utils";
151
+ import { fs, getEntryOptions, isRouterV5, isSSGEntry, isUseSSRBundle, logger } from "@modern-js/utils";
152
152
  import * as templates from "./templates";
153
153
  import { getClientRoutes, getClientRoutesLegacy } from "./getClientRoutes";
154
154
  import { FILE_SYSTEM_ROUTES_FILE_NAME, ENTRY_POINT_FILE_NAME, ENTRY_BOOTSTRAP_FILE_NAME } from "./constants";
@@ -245,7 +245,7 @@ var generateCode = function() {
245
245
  }
246
246
  function _generateEntryCode() {
247
247
  _generateEntryCode = _asyncToGenerator(function(entrypoint) {
248
- 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;
248
+ var entryName, isAutoMount, customBootstrap, fileSystemRoutes, initialRoutes, nestedRoute, routes, config2, ssr, useSSG, mode, hasPageRoute, _ref, code2, _, _tmp, routesServerFile, code3, _ref1, importStatements, plugins, _ref2, renderFunction, exportStatement, code, entryFile, _ref3, asyncEntryCode, bootstrapFile;
249
249
  return __generator(this, function(_state) {
250
250
  switch(_state.label){
251
251
  case 0:
@@ -298,6 +298,7 @@ var generateCode = function() {
298
298
  routes = _state.sent().routes;
299
299
  config2 = api.useResolvedConfigContext();
300
300
  ssr = getEntryOptions(entryName, config2.server.ssr, config2.server.ssrByEntries, packageName);
301
+ useSSG = isSSGEntry(config2, entryName, entrypoints);
301
302
  if (ssr) {
302
303
  mode = typeof ssr === "object" ? ssr.mode || "string" : "string";
303
304
  }
@@ -318,7 +319,7 @@ var generateCode = function() {
318
319
  4,
319
320
  templates.fileSystemRoutes({
320
321
  routes: routes,
321
- ssrMode: mode,
322
+ ssrMode: useSSG ? "string" : mode,
322
323
  nestedRoutesEntry: entrypoint.nestedRoutesEntry,
323
324
  entryName: entrypoint.entryName,
324
325
  internalDirectory: internalDirectory
@@ -333,7 +334,7 @@ var generateCode = function() {
333
334
  ];
334
335
  case 5:
335
336
  _ref = _state.sent(), code2 = _ref.code;
336
- if (!(entrypoint.nestedRoutesEntry && mode)) return [
337
+ if (!(entrypoint.nestedRoutesEntry && isUseSSRBundle(config2))) return [
337
338
  3,
338
339
  8
339
340
  ];
@@ -221,7 +221,7 @@ var __generator = this && this.__generator || function(thisArg, body) {
221
221
  }
222
222
  };
223
223
  import * as path from "path";
224
- import { createDebugger, findExists, fs, getEntryOptions, isApiOnly, minimist, getCommand, isDevCommand } from "@modern-js/utils";
224
+ import { createDebugger, findExists, fs, getEntryOptions, isApiOnly, minimist, getCommand, isDevCommand, isSSGEntry } from "@modern-js/utils";
225
225
  import { cloneDeep } from "@modern-js/utils/lodash";
226
226
  import { createVirtualModule } from "@modern-js/builder-shared";
227
227
  import { printInstructions } from "../utils/printInstructions";
@@ -554,7 +554,8 @@ var analyze_default = function(param) {
554
554
  entrypoints.forEach(function(entrypoint) {
555
555
  var entryName = entrypoint.entryName;
556
556
  var ssr = getEntryOptions(entryName, resolvedConfig.server.ssr, resolvedConfig.server.ssrByEntries, packageName);
557
- if (entrypoint.nestedRoutesEntry && ssr && name === "server") {
557
+ var useSSG = isSSGEntry(resolvedConfig, entryName, entrypoints);
558
+ if (entrypoint.nestedRoutesEntry && (ssr || useSSG) && name === "server") {
558
559
  var serverLoaderRuntime = require.resolve("@modern-js/plugin-data-loader/runtime");
559
560
  var serverLoadersFile = getServerLoadersFile(internalDirectory, entryName);
560
561
  var combinedModule = createVirtualModule('export * from "'.concat(serverLoaderRuntime, '"; export * from "').concat(serverLoadersFile, '"'));
@@ -1,5 +1,12 @@
1
1
  import path from "path";
2
- import { fs, getEntryOptions, isRouterV5, logger } from "@modern-js/utils";
2
+ import {
3
+ fs,
4
+ getEntryOptions,
5
+ isRouterV5,
6
+ isSSGEntry,
7
+ isUseSSRBundle,
8
+ logger
9
+ } from "@modern-js/utils";
3
10
  import * as templates from "./templates";
4
11
  import { getClientRoutes, getClientRoutesLegacy } from "./getClientRoutes";
5
12
  import {
@@ -109,6 +116,7 @@ const generateCode = async (appContext, config, entrypoints, api) => {
109
116
  config2.server.ssrByEntries,
110
117
  packageName
111
118
  );
119
+ const useSSG = isSSGEntry(config2, entryName, entrypoints);
112
120
  let mode;
113
121
  if (ssr) {
114
122
  mode = typeof ssr === "object" ? ssr.mode || "string" : "string";
@@ -128,13 +136,13 @@ const generateCode = async (appContext, config, entrypoints, api) => {
128
136
  entrypoint,
129
137
  code: await templates.fileSystemRoutes({
130
138
  routes,
131
- ssrMode: mode,
139
+ ssrMode: useSSG ? "string" : mode,
132
140
  nestedRoutesEntry: entrypoint.nestedRoutesEntry,
133
141
  entryName: entrypoint.entryName,
134
142
  internalDirectory
135
143
  })
136
144
  });
137
- if (entrypoint.nestedRoutesEntry && mode) {
145
+ if (entrypoint.nestedRoutesEntry && isUseSSRBundle(config2)) {
138
146
  const routesServerFile = getServerLoadersFile(
139
147
  internalDirectory,
140
148
  entryName
@@ -7,7 +7,8 @@ import {
7
7
  isApiOnly,
8
8
  minimist,
9
9
  getCommand,
10
- isDevCommand
10
+ isDevCommand,
11
+ isSSGEntry
11
12
  } from "@modern-js/utils";
12
13
  import { cloneDeep } from "@modern-js/utils/lodash";
13
14
  import { createVirtualModule } from "@modern-js/builder-shared";
@@ -191,7 +192,12 @@ var analyze_default = ({
191
192
  resolvedConfig.server.ssrByEntries,
192
193
  packageName
193
194
  );
194
- if (entrypoint.nestedRoutesEntry && ssr && name === "server") {
195
+ const useSSG = isSSGEntry(
196
+ resolvedConfig,
197
+ entryName,
198
+ entrypoints
199
+ );
200
+ if (entrypoint.nestedRoutesEntry && (ssr || useSSG) && name === "server") {
195
201
  const serverLoaderRuntime = require.resolve("@modern-js/plugin-data-loader/runtime");
196
202
  const serverLoadersFile = getServerLoadersFile(
197
203
  internalDirectory,
@@ -1,6 +1,7 @@
1
1
  import type { BuilderConfig } from '@modern-js/builder-webpack-provider';
2
2
  import type { BuilderConfig as RsBuilderConfig } from '@modern-js/builder-rspack-provider';
3
3
  import type { SharedOutputConfig as BuilderSharedOutputConfig } from '@modern-js/builder-shared';
4
+ import type { SSGConfig } from '@modern-js/types';
4
5
  import { UnwrapBuilderConfig } from '../utils';
5
6
  export type BuilderOutputConfig = UnwrapBuilderConfig<BuilderConfig, 'output'>;
6
7
  export type RsBuilderOutputConfig = UnwrapBuilderConfig<RsBuilderConfig, 'output'>;
@@ -10,18 +11,4 @@ export interface SharedOutputConfig extends BuilderSharedOutputConfig {
10
11
  }
11
12
  export interface OutputUserConfig extends BuilderOutputConfig, SharedOutputConfig {}
12
13
  export interface RsOutputUserConfig extends RsBuilderOutputConfig, SharedOutputConfig {}
13
- export type SSGRouteOptions = string | {
14
- url: string;
15
- output?: string;
16
- params?: Record<string, any>[];
17
- headers?: Record<string, any>;
18
- };
19
- export type SSGSingleEntryOptions = boolean | {
20
- preventDefault?: string[];
21
- headers?: Record<string, any>;
22
- routes?: SSGRouteOptions[];
23
- };
24
- export type SSGMultiEntryOptions = Record<string, SSGSingleEntryOptions>;
25
- export type SSGConfig = boolean | SSGSingleEntryOptions | SSGMultiEntryOptions | ((entryName: string, payload: {
26
- baseUrl?: string;
27
- }) => SSGSingleEntryOptions);
14
+ export type { SSGRouteOptions, SSGSingleEntryOptions, SSGMultiEntryOptions, SSGConfig } from '@modern-js/types';
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "modern",
12
12
  "modern.js"
13
13
  ],
14
- "version": "0.0.0-next-1104a9f18",
14
+ "version": "0.0.0-next-c835d71",
15
15
  "jsnext:source": "./src/index.ts",
16
16
  "types": "./dist/types/index.d.ts",
17
17
  "main": "./dist/cjs/index.js",
@@ -64,23 +64,23 @@
64
64
  "@babel/types": "^7.18.0",
65
65
  "es-module-lexer": "^1.1.0",
66
66
  "esbuild": "0.15.7",
67
- "@modern-js/builder": "0.0.0-next-1104a9f18",
68
- "@modern-js/builder-plugin-esbuild": "0.0.0-next-1104a9f18",
69
- "@modern-js/builder-plugin-node-polyfill": "0.0.0-next-1104a9f18",
70
- "@modern-js/builder-shared": "0.0.0-next-1104a9f18",
71
- "@modern-js/builder-webpack-provider": "0.0.0-next-1104a9f18",
72
- "@modern-js/core": "0.0.0-next-1104a9f18",
73
- "@modern-js/new-action": "0.0.0-next-1104a9f18",
74
- "@modern-js/node-bundle-require": "0.0.0-next-1104a9f18",
75
- "@modern-js/plugin": "0.0.0-next-1104a9f18",
76
- "@modern-js/plugin-i18n": "0.0.0-next-1104a9f18",
77
- "@modern-js/plugin-data-loader": "0.0.0-next-1104a9f18",
78
- "@modern-js/plugin-lint": "0.0.0-next-1104a9f18",
79
- "@modern-js/prod-server": "0.0.0-next-1104a9f18",
80
- "@modern-js/server": "0.0.0-next-1104a9f18",
81
- "@modern-js/types": "0.0.0-next-1104a9f18",
82
- "@modern-js/upgrade": "0.0.0-next-1104a9f18",
83
- "@modern-js/utils": "0.0.0-next-1104a9f18"
67
+ "@modern-js/builder": "0.0.0-next-c835d71",
68
+ "@modern-js/builder-plugin-esbuild": "0.0.0-next-c835d71",
69
+ "@modern-js/builder-plugin-node-polyfill": "0.0.0-next-c835d71",
70
+ "@modern-js/builder-shared": "0.0.0-next-c835d71",
71
+ "@modern-js/builder-webpack-provider": "0.0.0-next-c835d71",
72
+ "@modern-js/core": "0.0.0-next-c835d71",
73
+ "@modern-js/new-action": "0.0.0-next-c835d71",
74
+ "@modern-js/node-bundle-require": "0.0.0-next-c835d71",
75
+ "@modern-js/plugin": "0.0.0-next-c835d71",
76
+ "@modern-js/plugin-data-loader": "0.0.0-next-c835d71",
77
+ "@modern-js/plugin-i18n": "0.0.0-next-c835d71",
78
+ "@modern-js/plugin-lint": "0.0.0-next-c835d71",
79
+ "@modern-js/prod-server": "0.0.0-next-c835d71",
80
+ "@modern-js/server": "0.0.0-next-c835d71",
81
+ "@modern-js/types": "0.0.0-next-c835d71",
82
+ "@modern-js/upgrade": "0.0.0-next-c835d71",
83
+ "@modern-js/utils": "0.0.0-next-c835d71"
84
84
  },
85
85
  "devDependencies": {
86
86
  "@types/babel__traverse": "^7.14.2",
@@ -89,14 +89,14 @@
89
89
  "jest": "^27",
90
90
  "typescript": "^4",
91
91
  "webpack": "^5.75.0",
92
- "@modern-js/builder-plugin-swc": "0.0.0-next-1104a9f18",
93
- "@modern-js/builder-rspack-provider": "0.0.0-next-1104a9f18",
94
- "@modern-js/server-core": "0.0.0-next-1104a9f18",
95
- "@scripts/jest-config": "0.0.0-next-1104a9f18",
96
- "@scripts/build": "0.0.0-next-1104a9f18"
92
+ "@modern-js/builder-plugin-swc": "0.0.0-next-c835d71",
93
+ "@modern-js/builder-rspack-provider": "0.0.0-next-c835d71",
94
+ "@modern-js/server-core": "0.0.0-next-c835d71",
95
+ "@scripts/jest-config": "0.0.0-next-c835d71",
96
+ "@scripts/build": "0.0.0-next-c835d71"
97
97
  },
98
98
  "peerDependencies": {
99
- "@modern-js/builder-rspack-provider": "0.0.0-next-1104a9f18"
99
+ "@modern-js/builder-rspack-provider": "0.0.0-next-c835d71"
100
100
  },
101
101
  "peerDependenciesMeta": {
102
102
  "@modern-js/builder-rspack-provider": {