@modern-js/app-tools 2.0.0-beta.0 → 2.0.0-beta.2
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 +375 -0
- package/dist/js/modern/analyze/generateCode.js +30 -38
- package/dist/js/modern/analyze/getBundleEntry.js +5 -13
- package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +5 -30
- package/dist/js/modern/analyze/getClientRoutes/getRoutesLegacy.js +5 -30
- package/dist/js/modern/analyze/getClientRoutes/utils.js +0 -3
- package/dist/js/modern/analyze/getFileSystemEntry.js +5 -18
- package/dist/js/modern/analyze/getHtmlTemplate.js +3 -10
- package/dist/js/modern/analyze/getServerRoutes.js +25 -38
- package/dist/js/modern/analyze/index.js +90 -48
- package/dist/js/modern/analyze/isDefaultExportFunction.js +0 -4
- package/dist/js/modern/analyze/makeLegalIdentifier.js +0 -2
- package/dist/js/modern/analyze/nestedRoutes.js +8 -33
- package/dist/js/modern/analyze/templates.js +22 -37
- package/dist/js/modern/analyze/utils.js +0 -7
- package/dist/js/modern/builder/builderPlugins/compatModern.js +41 -58
- package/dist/js/modern/builder/index.js +56 -37
- package/dist/js/modern/builder/share.js +1 -5
- package/dist/js/modern/builder/webpackPlugins/htmlAsyncChunkPlugin.js +0 -8
- package/dist/js/modern/builder/webpackPlugins/htmlBottomTemplate.js +2 -13
- package/dist/js/modern/builder/webpackPlugins/routerPlugin.js +97 -0
- package/dist/js/modern/commands/build.js +12 -46
- package/dist/js/modern/commands/dev.js +20 -23
- package/dist/js/modern/commands/inspect.js +4 -19
- package/dist/js/modern/commands/start.js +1 -2
- package/dist/js/modern/config/default.js +207 -0
- package/dist/js/modern/config/index.js +2 -0
- package/dist/js/modern/config/initial/createHtmlConfig.js +32 -0
- package/dist/js/modern/{builder → config/initial}/createOutputConfig.js +19 -18
- package/dist/js/modern/config/initial/createSourceConfig.js +32 -0
- package/dist/js/modern/config/initial/createToolsConfig.js +41 -0
- package/dist/js/modern/config/initial/index.js +11 -0
- package/dist/js/modern/config/initial/inits.js +117 -0
- package/dist/js/modern/config/initial/transformNormalizedConfig.js +40 -0
- package/dist/js/modern/defineConfig.js +12 -0
- package/dist/js/modern/hooks.js +23 -19
- package/dist/js/modern/index.js +12 -19
- package/dist/js/modern/initialize/index.js +72 -0
- package/dist/js/modern/schema/Schema.js +39 -0
- package/dist/js/modern/schema/index.js +139 -0
- package/dist/js/modern/schema/legacy.js +284 -0
- 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 +2 -0
- 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 +4 -0
- 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 +1 -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 +2 -13
- package/dist/js/modern/utils/createFileWatcher.js +82 -0
- package/dist/js/modern/utils/createServer.js +0 -5
- package/dist/js/modern/utils/getSpecifiedEntries.js +0 -6
- package/dist/js/modern/utils/printInstructions.js +2 -1
- package/dist/js/modern/utils/restart.js +17 -0
- package/dist/js/modern/utils/routes.js +0 -2
- package/dist/js/node/analyze/generateCode.js +30 -61
- package/dist/js/node/analyze/getBundleEntry.js +5 -19
- package/dist/js/node/analyze/getClientRoutes/getRoutes.js +5 -45
- package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +5 -45
- package/dist/js/node/analyze/getClientRoutes/index.js +0 -2
- package/dist/js/node/analyze/getClientRoutes/utils.js +0 -14
- package/dist/js/node/analyze/getFileSystemEntry.js +5 -26
- package/dist/js/node/analyze/getHtmlTemplate.js +3 -24
- package/dist/js/node/analyze/getServerRoutes.js +24 -46
- package/dist/js/node/analyze/index.js +91 -70
- package/dist/js/node/analyze/isDefaultExportFunction.js +0 -12
- package/dist/js/node/analyze/makeLegalIdentifier.js +0 -4
- package/dist/js/node/analyze/nestedRoutes.js +8 -41
- package/dist/js/node/analyze/templates.js +22 -47
- package/dist/js/node/analyze/utils.js +0 -20
- package/dist/js/node/builder/builderPlugins/compatModern.js +41 -69
- package/dist/js/node/builder/index.js +57 -51
- package/dist/js/node/builder/share.js +1 -13
- package/dist/js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js +0 -10
- package/dist/js/node/builder/webpackPlugins/htmlBottomTemplate.js +2 -15
- package/dist/js/node/builder/webpackPlugins/routerPlugin.js +105 -0
- package/dist/js/node/commands/build.js +10 -57
- package/dist/js/node/commands/deploy.js +0 -2
- package/dist/js/node/commands/dev.js +19 -34
- package/dist/js/node/commands/index.js +0 -6
- package/dist/js/node/commands/inspect.js +4 -26
- package/dist/js/node/commands/start.js +1 -11
- package/dist/js/node/config/default.js +214 -0
- package/dist/js/node/config/index.js +31 -0
- package/dist/js/node/config/initial/createHtmlConfig.js +38 -0
- package/dist/js/node/{builder → config/initial}/createOutputConfig.js +19 -20
- package/dist/js/node/config/initial/createSourceConfig.js +38 -0
- package/dist/js/node/config/initial/createToolsConfig.js +47 -0
- package/dist/js/node/config/initial/index.js +24 -0
- package/dist/js/node/config/initial/inits.js +127 -0
- package/dist/js/node/config/initial/transformNormalizedConfig.js +46 -0
- package/dist/js/node/defineConfig.js +20 -0
- package/dist/js/node/exports/server.js +0 -1
- package/dist/js/node/hooks.js +23 -30
- package/dist/js/node/index.js +35 -48
- package/dist/js/node/initialize/index.js +79 -0
- package/dist/js/node/locale/index.js +0 -4
- package/dist/js/node/schema/Schema.js +46 -0
- package/dist/js/node/schema/index.js +152 -0
- package/dist/js/node/schema/legacy.js +291 -0
- package/dist/js/node/types/config/deploy.js +0 -0
- package/dist/js/node/types/config/dev.js +0 -0
- package/dist/js/node/types/config/experiments.js +0 -0
- package/dist/js/node/types/config/html.js +0 -0
- package/dist/js/node/types/config/index.js +16 -0
- package/dist/js/node/types/config/output.js +0 -0
- package/dist/js/node/types/config/performance.js +0 -0
- package/dist/js/node/types/config/security.js +0 -0
- package/dist/js/node/types/config/source.js +0 -0
- package/dist/js/node/types/config/tools.js +0 -0
- package/dist/js/node/types/hooks.js +0 -0
- package/dist/js/node/types/index.js +38 -0
- package/dist/js/node/types/legacyConfig/deploy.js +0 -0
- package/dist/js/node/types/legacyConfig/dev.js +0 -0
- package/dist/js/node/types/legacyConfig/index.js +0 -0
- package/dist/js/node/types/legacyConfig/output.js +5 -0
- package/dist/js/node/types/legacyConfig/source.js +0 -0
- package/dist/js/node/types/legacyConfig/tools.js +0 -0
- package/dist/js/node/utils/commands.js +0 -2
- package/dist/js/node/utils/config.js +2 -26
- package/dist/js/node/utils/createFileWatcher.js +90 -0
- package/dist/js/node/utils/createServer.js +0 -15
- package/dist/js/node/utils/getSpecifiedEntries.js +0 -9
- package/dist/js/node/utils/language.js +0 -2
- package/dist/js/node/utils/printInstructions.js +2 -5
- package/dist/js/node/utils/restart.js +23 -0
- package/dist/js/node/utils/routes.js +0 -5
- package/dist/js/treeshaking/analyze/generateCode.js +58 -101
- package/dist/js/treeshaking/analyze/getBundleEntry.js +12 -20
- package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +16 -42
- package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +16 -42
- package/dist/js/treeshaking/analyze/getClientRoutes/utils.js +0 -3
- package/dist/js/treeshaking/analyze/getFileSystemEntry.js +5 -18
- package/dist/js/treeshaking/analyze/getHtmlTemplate.js +3 -27
- package/dist/js/treeshaking/analyze/getServerRoutes.js +29 -41
- package/dist/js/treeshaking/analyze/index.js +195 -91
- package/dist/js/treeshaking/analyze/isDefaultExportFunction.js +0 -4
- package/dist/js/treeshaking/analyze/makeLegalIdentifier.js +0 -2
- package/dist/js/treeshaking/analyze/nestedRoutes.js +9 -51
- package/dist/js/treeshaking/analyze/templates.js +31 -50
- package/dist/js/treeshaking/analyze/utils.js +7 -14
- package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +50 -68
- package/dist/js/treeshaking/builder/index.js +69 -65
- package/dist/js/treeshaking/builder/share.js +1 -5
- package/dist/js/treeshaking/builder/webpackPlugins/htmlAsyncChunkPlugin.js +1 -13
- package/dist/js/treeshaking/builder/webpackPlugins/htmlBottomTemplate.js +2 -14
- package/dist/js/treeshaking/builder/webpackPlugins/routerPlugin.js +121 -0
- package/dist/js/treeshaking/commands/build.js +41 -116
- package/dist/js/treeshaking/commands/deploy.js +0 -3
- package/dist/js/treeshaking/commands/dev.js +38 -46
- package/dist/js/treeshaking/commands/inspect.js +9 -27
- package/dist/js/treeshaking/commands/start.js +1 -9
- package/dist/js/treeshaking/config/default.js +200 -0
- package/dist/js/treeshaking/config/index.js +2 -0
- package/dist/js/treeshaking/config/initial/createHtmlConfig.js +31 -0
- package/dist/js/treeshaking/config/initial/createOutputConfig.js +67 -0
- package/dist/js/treeshaking/config/initial/createSourceConfig.js +41 -0
- package/dist/js/treeshaking/config/initial/createToolsConfig.js +38 -0
- package/dist/js/treeshaking/config/initial/index.js +11 -0
- package/dist/js/treeshaking/config/initial/inits.js +114 -0
- package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +38 -0
- package/dist/js/treeshaking/defineConfig.js +14 -0
- package/dist/js/treeshaking/hooks.js +23 -19
- package/dist/js/treeshaking/index.js +8 -43
- package/dist/js/treeshaking/initialize/index.js +121 -0
- package/dist/js/treeshaking/schema/Schema.js +75 -0
- package/dist/js/treeshaking/schema/index.js +138 -0
- package/dist/js/treeshaking/schema/legacy.js +273 -0
- package/dist/js/treeshaking/types/config/deploy.js +0 -0
- package/dist/js/treeshaking/types/config/dev.js +0 -0
- package/dist/js/treeshaking/types/config/experiments.js +0 -0
- package/dist/js/treeshaking/types/config/html.js +0 -0
- package/dist/js/treeshaking/types/config/index.js +2 -0
- package/dist/js/treeshaking/types/config/output.js +0 -0
- package/dist/js/treeshaking/types/config/performance.js +0 -0
- package/dist/js/treeshaking/types/config/security.js +0 -0
- package/dist/js/treeshaking/types/config/source.js +0 -0
- package/dist/js/treeshaking/types/config/tools.js +0 -0
- package/dist/js/treeshaking/types/hooks.js +0 -0
- package/dist/js/treeshaking/types/index.js +4 -0
- package/dist/js/treeshaking/types/legacyConfig/deploy.js +0 -0
- package/dist/js/treeshaking/types/legacyConfig/dev.js +0 -0
- package/dist/js/treeshaking/types/legacyConfig/index.js +0 -0
- package/dist/js/treeshaking/types/legacyConfig/output.js +1 -0
- package/dist/js/treeshaking/types/legacyConfig/source.js +0 -0
- package/dist/js/treeshaking/types/legacyConfig/tools.js +0 -0
- package/dist/js/treeshaking/utils/config.js +2 -18
- package/dist/js/treeshaking/utils/createFileWatcher.js +123 -0
- package/dist/js/treeshaking/utils/createServer.js +0 -10
- package/dist/js/treeshaking/utils/getSpecifiedEntries.js +0 -10
- package/dist/js/treeshaking/utils/printInstructions.js +0 -5
- package/dist/js/treeshaking/utils/restart.js +45 -0
- package/dist/js/treeshaking/utils/routes.js +0 -4
- package/dist/types/analyze/generateCode.d.ts +3 -2
- package/dist/types/analyze/getBundleEntry.d.ts +2 -2
- package/dist/types/analyze/getFileSystemEntry.d.ts +2 -2
- package/dist/types/analyze/getHtmlTemplate.d.ts +3 -3
- package/dist/types/analyze/getServerRoutes.d.ts +3 -2
- package/dist/types/analyze/index.d.ts +3 -42
- package/dist/types/analyze/nestedRoutes.d.ts +1 -1
- package/dist/types/analyze/templates.d.ts +4 -2
- package/dist/types/analyze/utils.d.ts +1 -1
- package/dist/types/builder/builderPlugins/compatModern.d.ts +2 -3
- package/dist/types/builder/index.d.ts +7 -8
- package/dist/types/builder/share.d.ts +2 -2
- package/dist/types/builder/webpackPlugins/routerPlugin.d.ts +10 -0
- package/dist/types/commands/build.d.ts +2 -2
- package/dist/types/commands/deploy.d.ts +2 -2
- package/dist/types/commands/dev.d.ts +2 -2
- package/dist/types/commands/inspect.d.ts +6 -1
- package/dist/types/commands/start.d.ts +2 -2
- package/dist/types/config/default.d.ts +3 -0
- package/dist/types/config/index.d.ts +2 -0
- package/dist/types/config/initial/createHtmlConfig.d.ts +2 -0
- package/dist/types/config/initial/createOutputConfig.d.ts +2 -0
- package/dist/types/config/initial/createSourceConfig.d.ts +2 -0
- package/dist/types/config/initial/createToolsConfig.d.ts +2 -0
- package/dist/types/config/initial/index.d.ts +4 -0
- package/dist/types/config/initial/inits.d.ts +4 -0
- package/dist/types/config/initial/transformNormalizedConfig.d.ts +2 -0
- package/dist/types/defineConfig.d.ts +7 -0
- package/dist/types/hooks.d.ts +2 -42
- package/dist/types/index.d.ts +5 -7
- package/dist/types/initialize/index.d.ts +3 -0
- package/dist/types/schema/Schema.d.ts +14 -0
- package/dist/types/schema/index.d.ts +4 -0
- package/dist/types/schema/legacy.d.ts +3 -0
- package/dist/types/types/config/deploy.d.ts +9 -0
- package/dist/types/types/config/dev.d.ts +13 -0
- package/dist/types/types/config/experiments.d.ts +4 -0
- package/dist/types/types/config/html.d.ts +4 -0
- package/dist/types/types/config/index.d.ts +62 -0
- package/dist/types/types/config/output.d.ts +23 -0
- package/dist/types/types/config/performance.d.ts +4 -0
- package/dist/types/types/config/security.d.ts +4 -0
- package/dist/types/types/config/source.d.ts +22 -0
- package/dist/types/types/config/tools.d.ts +15 -0
- package/dist/types/types/hooks.d.ts +80 -0
- package/dist/types/types/index.d.ts +23 -0
- package/dist/types/types/legacyConfig/deploy.d.ts +8 -0
- package/dist/types/types/legacyConfig/dev.d.ts +12 -0
- package/dist/types/types/legacyConfig/index.d.ts +33 -0
- package/dist/types/types/legacyConfig/output.d.ts +51 -0
- package/dist/types/types/legacyConfig/source.d.ts +25 -0
- package/dist/types/types/legacyConfig/tools.d.ts +16 -0
- package/dist/types/utils/config.d.ts +2 -3
- package/dist/types/utils/createFileWatcher.d.ts +3 -0
- package/dist/types/utils/printInstructions.d.ts +3 -3
- package/dist/types/utils/restart.d.ts +3 -0
- package/package.json +26 -25
- package/dist/js/modern/builder/createHtmlConfig.js +0 -58
- package/dist/js/modern/builder/createSourceConfig.js +0 -85
- package/dist/js/modern/builder/createToolsConfig.js +0 -94
- package/dist/js/modern/utils/createCompiler.js +0 -58
- package/dist/js/node/builder/createHtmlConfig.js +0 -76
- package/dist/js/node/builder/createSourceConfig.js +0 -99
- package/dist/js/node/builder/createToolsConfig.js +0 -103
- package/dist/js/node/utils/createCompiler.js +0 -75
- package/dist/js/treeshaking/builder/createHtmlConfig.js +0 -59
- package/dist/js/treeshaking/builder/createOutputConfig.js +0 -67
- package/dist/js/treeshaking/builder/createSourceConfig.js +0 -100
- package/dist/js/treeshaking/builder/createToolsConfig.js +0 -90
- package/dist/js/treeshaking/utils/createCompiler.js +0 -117
- package/dist/types/builder/createHtmlConfig.d.ts +0 -6
- package/dist/types/builder/createOutputConfig.d.ts +0 -3
- package/dist/types/builder/createSourceConfig.d.ts +0 -5
- package/dist/types/builder/createToolsConfig.d.ts +0 -13
- package/dist/types/utils/createCompiler.d.ts +0 -12
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,380 @@
|
|
|
1
1
|
# @modern-js/app-tools
|
|
2
2
|
|
|
3
|
+
## 2.0.0-beta.2
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- dda38c9c3e: chore: v2
|
|
8
|
+
|
|
9
|
+
### Minor Changes
|
|
10
|
+
|
|
11
|
+
- edd1cfb1af: feat: modernjs Access builder compiler
|
|
12
|
+
feat: modernjs 接入 builder 构建
|
|
13
|
+
- 543be9558e: feat: compile server loader and support handle loader request
|
|
14
|
+
feat: 编译 server loader 并支持处理 loader 的请求
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- c9f912ca4d: feat(app-tools): improve build logs of dev and build command
|
|
19
|
+
|
|
20
|
+
feat(app-tools): 优化 dev 和 build 过程中的日志展示
|
|
21
|
+
|
|
22
|
+
- 103973cde9: fix: builder tools.webpackChain config args not match the Modernjs tools.webpackChain
|
|
23
|
+
fix: builder tools.webpackChain 配置传参无法匹配 Modernjs tools.webpackChain
|
|
24
|
+
- 0b2d1ef02b: fix: repeat register `babel-plugin-lodash`
|
|
25
|
+
fix: 重复注册 `babel-plugin-lodash`
|
|
26
|
+
- 82cef85ed7: fix: specify builder compiler framework
|
|
27
|
+
fix: 指明 builder 构建时框架
|
|
28
|
+
- 3e57f2b: feat: add document feature with plugin
|
|
29
|
+
|
|
30
|
+
feat: 增加 document 功能插件
|
|
31
|
+
|
|
32
|
+
- 85edee888c: feat(app-tools): support tools.htmlPlugin config
|
|
33
|
+
|
|
34
|
+
feat(app-tools): 支持 tools.htmlPlugin 配置项
|
|
35
|
+
|
|
36
|
+
- 5402fdb: feat(Builder): add output.disableTsChecker config
|
|
37
|
+
|
|
38
|
+
feat(Builder): 新增 output.disableTsChecker 配置项
|
|
39
|
+
|
|
40
|
+
- dc8eeb9cbb: fix: clear distDirectory in prepare hook & inject data loader plugin to server
|
|
41
|
+
fix: 在 prepare hook 中清理 dist 目录,并且向 server 中注入 data loader plugin
|
|
42
|
+
- cc971eabfc: refactor: move server plugin load logic in `@modern-js/core`
|
|
43
|
+
refactor:移除在 `@modern-js/core` 中的 server 插件加载逻辑
|
|
44
|
+
- 5b9049f2e9: feat: inject async js chunk when streaming ssr
|
|
45
|
+
feat: streaming ssr 时, 注入 async 类型的 js chunk
|
|
46
|
+
- d4a4566: chore: rename plugin-jarvis to plugin-lint
|
|
47
|
+
|
|
48
|
+
chore: 重命名 plugin-jarvis 为 plugin-lint
|
|
49
|
+
|
|
50
|
+
- 6bda14ed71: feat: refactor router with react-router@6.4
|
|
51
|
+
|
|
52
|
+
feat: 使用 react-router@6.4 重构路由模块
|
|
53
|
+
|
|
54
|
+
- d36c6ee126: fix(app-tools): failed to run inspect command
|
|
55
|
+
|
|
56
|
+
fix(app-tools): 修复运行 inspect 命令失败的问题
|
|
57
|
+
|
|
58
|
+
- 92004d1: feat: support load chunks parallelly
|
|
59
|
+
feat: 支持并行加载 chunks
|
|
60
|
+
- b8bbe036c7: feat: change type logic
|
|
61
|
+
feat: 修改类型相关的逻辑
|
|
62
|
+
- 40ed587: feat: inject css chunk into html for streaming ssr
|
|
63
|
+
feat: streaming ssr 返回的 html 注入 css chunk
|
|
64
|
+
- af4422d67f: feat(builder): complete utils of tools.webpack
|
|
65
|
+
|
|
66
|
+
feat(builder): 补全 tools.webpack 提供的 utils 方法
|
|
67
|
+
|
|
68
|
+
- 87c1ff8: feat(app-tools): attach builder instance to appContext
|
|
69
|
+
|
|
70
|
+
feat(app-tools): 将 builder 实例挂载到 appContext 上
|
|
71
|
+
|
|
72
|
+
- c258e34202: fix: add builder hooks `beforeBuild` params
|
|
73
|
+
fix: 新增 builder hooks `beforeBuild` 的参数
|
|
74
|
+
- 3b3d709: fix(app-tools): cli --analyze option not work
|
|
75
|
+
|
|
76
|
+
fix(app-tools): 修复 --analyze 命令行参数不生效的问题
|
|
77
|
+
|
|
78
|
+
- 8b8e1bb571: feat: support nested routes
|
|
79
|
+
feat: 支持嵌套路由
|
|
80
|
+
- a2c8cc3: fix: change tools define userconfig type
|
|
81
|
+
fix: 修改工程定义的 UserConfig 类型
|
|
82
|
+
- 7de97ae: fix: `deploy` command has't load `builder` instance
|
|
83
|
+
fix: `deploy` 命令没有加载 builder 实例
|
|
84
|
+
- c3b7de4: fix(app-tools): dev.assetPrefix not work
|
|
85
|
+
|
|
86
|
+
fix(app-tools): 修复 dev.assetPrefix 配置项不生效的问题
|
|
87
|
+
|
|
88
|
+
- 92004d1: fix: use loadable lazy instead of loadable
|
|
89
|
+
fix: 使用 loadable lazy 组件替代 loadable
|
|
90
|
+
- c677befc22: fix(app-tools): compat legacy resolve behavior
|
|
91
|
+
|
|
92
|
+
fix(app-tools): 兼容旧版本 node_modules 解析逻辑
|
|
93
|
+
|
|
94
|
+
- 3f7cde5caa: fix: builder plugin setup can't get config
|
|
95
|
+
fix: builder 插件在 setup 阶段无法拿到 config
|
|
96
|
+
- 99213e4bae: fix: process does't exit when exec command
|
|
97
|
+
fix: 修复执行命令时进程未退出的问题
|
|
98
|
+
- b16fd964da: fix: `modern-js/app-tools` pass error config to builder.
|
|
99
|
+
fix: `modern-js/app-tools` 传递错误的 config 给 builder.
|
|
100
|
+
- 7eefedd7ca: fix: add html-webpack-plugin `__internal__` options, for bottom template
|
|
101
|
+
fix: 为了 bottom template, 增加 `html-webpack-plugin` `__internal__` 配置项,
|
|
102
|
+
- 14b712da84: fix: use consistent alias type and default value across packages
|
|
103
|
+
|
|
104
|
+
fix: 在各个包中使用一致的 alias 类型定义和默认值
|
|
105
|
+
|
|
106
|
+
- Updated dependencies [c9f912ca4d]
|
|
107
|
+
- Updated dependencies [95be7cc49c]
|
|
108
|
+
- Updated dependencies [e439457a51]
|
|
109
|
+
- Updated dependencies [4d1545f8c0]
|
|
110
|
+
- Updated dependencies [2bc090c089]
|
|
111
|
+
- Updated dependencies [f96a725211]
|
|
112
|
+
- Updated dependencies [828f42f9ce]
|
|
113
|
+
- Updated dependencies [060abd4]
|
|
114
|
+
- Updated dependencies [309cd71]
|
|
115
|
+
- Updated dependencies [c7456864a8]
|
|
116
|
+
- Updated dependencies [c9e800d39a]
|
|
117
|
+
- Updated dependencies [0ff846fb56]
|
|
118
|
+
- Updated dependencies [3cf9633]
|
|
119
|
+
- Updated dependencies [57077b2c64]
|
|
120
|
+
- Updated dependencies [d032d49]
|
|
121
|
+
- Updated dependencies [2ff6167]
|
|
122
|
+
- Updated dependencies [287f298990]
|
|
123
|
+
- Updated dependencies [15bf09d9c8]
|
|
124
|
+
- Updated dependencies [423188db70]
|
|
125
|
+
- Updated dependencies [fd2d652c03]
|
|
126
|
+
- Updated dependencies [0c2d8dae31]
|
|
127
|
+
- Updated dependencies [2edad29]
|
|
128
|
+
- Updated dependencies [85edee888c]
|
|
129
|
+
- Updated dependencies [a2509bfbdb]
|
|
130
|
+
- Updated dependencies [3998875791]
|
|
131
|
+
- Updated dependencies [ab3924a]
|
|
132
|
+
- Updated dependencies [3998875791]
|
|
133
|
+
- Updated dependencies [ba86b8b711]
|
|
134
|
+
- Updated dependencies [61f21d1e77]
|
|
135
|
+
- Updated dependencies [5402fdb]
|
|
136
|
+
- Updated dependencies [2ae58176fe]
|
|
137
|
+
- Updated dependencies [92f0ead]
|
|
138
|
+
- Updated dependencies [edd1cfb1af]
|
|
139
|
+
- Updated dependencies [5d67c26cdb]
|
|
140
|
+
- Updated dependencies [cc971eabfc]
|
|
141
|
+
- Updated dependencies [5b9049f2e9]
|
|
142
|
+
- Updated dependencies [d4a4566]
|
|
143
|
+
- Updated dependencies [18360a38d7]
|
|
144
|
+
- Updated dependencies [6bda14ed71]
|
|
145
|
+
- Updated dependencies [0b314e6946]
|
|
146
|
+
- Updated dependencies [92004d1]
|
|
147
|
+
- Updated dependencies [b8bbe036c7]
|
|
148
|
+
- Updated dependencies [5911154]
|
|
149
|
+
- Updated dependencies [40ed587]
|
|
150
|
+
- Updated dependencies [af4422d67f]
|
|
151
|
+
- Updated dependencies [705adc1]
|
|
152
|
+
- Updated dependencies [87c1ff8]
|
|
153
|
+
- Updated dependencies [d5a31df781]
|
|
154
|
+
- Updated dependencies [dda38c9c3e]
|
|
155
|
+
- Updated dependencies [102d32e4ba]
|
|
156
|
+
- Updated dependencies [c258e34202]
|
|
157
|
+
- Updated dependencies [812913c]
|
|
158
|
+
- Updated dependencies [7248342e4d]
|
|
159
|
+
- Updated dependencies [568eab1e42]
|
|
160
|
+
- Updated dependencies [8b8e1bb571]
|
|
161
|
+
- Updated dependencies [3bbea92b2a]
|
|
162
|
+
- Updated dependencies [ae71096d45]
|
|
163
|
+
- Updated dependencies [73cd29dd9f]
|
|
164
|
+
- Updated dependencies [a23010138d]
|
|
165
|
+
- Updated dependencies [75d1b2657c]
|
|
166
|
+
- Updated dependencies [18aaf42]
|
|
167
|
+
- Updated dependencies [f179749]
|
|
168
|
+
- Updated dependencies [3fae2d0]
|
|
169
|
+
- Updated dependencies [8a6d45f105]
|
|
170
|
+
- Updated dependencies [ebbeed1]
|
|
171
|
+
- Updated dependencies [90e2879520]
|
|
172
|
+
- Updated dependencies [df41d71]
|
|
173
|
+
- Updated dependencies [f727e5c6cc]
|
|
174
|
+
- Updated dependencies [5e3cecd523]
|
|
175
|
+
- Updated dependencies [abf3421a75]
|
|
176
|
+
- Updated dependencies [da2d1fc3c2]
|
|
177
|
+
- Updated dependencies [543be9558e]
|
|
178
|
+
- Updated dependencies [14b712da84]
|
|
179
|
+
- @modern-js/builder-webpack-provider@2.0.0-beta.2
|
|
180
|
+
- @modern-js/builder-shared@2.0.0-beta.2
|
|
181
|
+
- @modern-js/core@2.0.0-beta.2
|
|
182
|
+
- @modern-js/prod-server@2.0.0-beta.2
|
|
183
|
+
- @modern-js/builder-plugin-esbuild@2.0.0-beta.2
|
|
184
|
+
- @modern-js/server@2.0.0-beta.2
|
|
185
|
+
- @modern-js/node-bundle-require@2.0.0-beta.2
|
|
186
|
+
- @modern-js/utils@2.0.0-beta.2
|
|
187
|
+
- @modern-js/builder-plugin-node-polyfill@2.0.0-beta.2
|
|
188
|
+
- @modern-js/types@2.0.0-beta.2
|
|
189
|
+
- @modern-js/plugin-lint@2.0.0-beta.2
|
|
190
|
+
- @modern-js/plugin@2.0.0-beta.2
|
|
191
|
+
- @modern-js/builder@2.0.0-beta.2
|
|
192
|
+
- @modern-js/plugin-data-loader@2.0.0-beta.2
|
|
193
|
+
- @modern-js/plugin-i18n@2.0.0-beta.2
|
|
194
|
+
- @modern-js/new-action@2.0.0-beta.2
|
|
195
|
+
- @modern-js/upgrade@2.0.0-beta.2
|
|
196
|
+
|
|
197
|
+
## 2.0.0-beta.1
|
|
198
|
+
|
|
199
|
+
### Major Changes
|
|
200
|
+
|
|
201
|
+
- dda38c9: chore: v2
|
|
202
|
+
|
|
203
|
+
### Minor Changes
|
|
204
|
+
|
|
205
|
+
- edd1cfb1af: feat: modernjs Access builder compiler
|
|
206
|
+
feat: modernjs 接入 builder 构建
|
|
207
|
+
- 543be9558e: feat: compile server loader and support handle loader request
|
|
208
|
+
feat: 编译 server loader 并支持处理 loader 的请求
|
|
209
|
+
|
|
210
|
+
### Patch Changes
|
|
211
|
+
|
|
212
|
+
- c9f912ca4d: feat(app-tools): improve build logs of dev and build command
|
|
213
|
+
|
|
214
|
+
feat(app-tools): 优化 dev 和 build 过程中的日志展示
|
|
215
|
+
|
|
216
|
+
- 103973cde9: fix: builder tools.webpackChain config args not match the Modernjs tools.webpackChain
|
|
217
|
+
fix: builder tools.webpackChain 配置传参无法匹配 Modernjs tools.webpackChain
|
|
218
|
+
- 0b2d1ef02b: fix: repeat register `babel-plugin-lodash`
|
|
219
|
+
fix: 重复注册 `babel-plugin-lodash`
|
|
220
|
+
- 82cef85ed7: fix: specify builder compiler framework
|
|
221
|
+
fix: 指明 builder 构建时框架
|
|
222
|
+
- 3e57f2b: feat: add document feature with plugin
|
|
223
|
+
|
|
224
|
+
feat: 增加 document 功能插件
|
|
225
|
+
|
|
226
|
+
- 85edee888c: feat(app-tools): support tools.htmlPlugin config
|
|
227
|
+
|
|
228
|
+
feat(app-tools): 支持 tools.htmlPlugin 配置项
|
|
229
|
+
|
|
230
|
+
- 5402fdb: feat(Builder): add output.disableTsChecker config
|
|
231
|
+
|
|
232
|
+
feat(Builder): 新增 output.disableTsChecker 配置项
|
|
233
|
+
|
|
234
|
+
- dc8eeb9cbb: fix: clear distDirectory in prepare hook & inject data loader plugin to server
|
|
235
|
+
fix: 在 prepare hook 中清理 dist 目录,并且向 server 中注入 data loader plugin
|
|
236
|
+
- cc971eabfc: refactor: move server plugin load logic in `@modern-js/core`
|
|
237
|
+
refactor:移除在 `@modern-js/core` 中的 server 插件加载逻辑
|
|
238
|
+
- 5b9049f: feat: inject async js chunk when streaming ssr
|
|
239
|
+
feat: streaming ssr 时, 注入 async 类型的 js chunk
|
|
240
|
+
- d4a4566: chore: rename plugin-jarvis to plugin-lint
|
|
241
|
+
|
|
242
|
+
chore: 重命名 plugin-jarvis 为 plugin-lint
|
|
243
|
+
|
|
244
|
+
- 6bda14ed71: feat: refactor router with react-router@6.4
|
|
245
|
+
|
|
246
|
+
feat: 使用 react-router@6.4 重构路由模块
|
|
247
|
+
|
|
248
|
+
- d36c6ee126: fix(app-tools): failed to run inspect command
|
|
249
|
+
|
|
250
|
+
fix(app-tools): 修复运行 inspect 命令失败的问题
|
|
251
|
+
|
|
252
|
+
- 92004d1: feat: support load chunks parallelly
|
|
253
|
+
feat: 支持并行加载 chunks
|
|
254
|
+
- b8bbe036c7: feat: change type logic
|
|
255
|
+
feat: 修改类型相关的逻辑
|
|
256
|
+
- 40ed587: feat: inject css chunk into html for streaming ssr
|
|
257
|
+
feat: streaming ssr 返回的 html 注入 css chunk
|
|
258
|
+
- af4422d: feat(builder): complete utils of tools.webpack
|
|
259
|
+
|
|
260
|
+
feat(builder): 补全 tools.webpack 提供的 utils 方法
|
|
261
|
+
|
|
262
|
+
- 87c1ff8: feat(app-tools): attach builder instance to appContext
|
|
263
|
+
|
|
264
|
+
feat(app-tools): 将 builder 实例挂载到 appContext 上
|
|
265
|
+
|
|
266
|
+
- c258e34202: fix: add builder hooks `beforeBuild` params
|
|
267
|
+
fix: 新增 builder hooks `beforeBuild` 的参数
|
|
268
|
+
- 8b8e1bb571: feat: support nested routes
|
|
269
|
+
feat: 支持嵌套路由
|
|
270
|
+
- 7de97ae: fix: `deploy` command has't load `builder` instance
|
|
271
|
+
fix: `deploy` 命令没有加载 builder 实例
|
|
272
|
+
- c3b7de4: fix(app-tools): dev.assetPrefix not work
|
|
273
|
+
|
|
274
|
+
fix(app-tools): 修复 dev.assetPrefix 配置项不生效的问题
|
|
275
|
+
|
|
276
|
+
- 92004d1: fix: use loadable lazy instead of loadable
|
|
277
|
+
fix: 使用 loadable lazy 组件替代 loadable
|
|
278
|
+
- c677befc22: fix(app-tools): compat legacy resolve behavior
|
|
279
|
+
|
|
280
|
+
fix(app-tools): 兼容旧版本 node_modules 解析逻辑
|
|
281
|
+
|
|
282
|
+
- 3f7cde5caa: fix: builder plugin setup can't get config
|
|
283
|
+
fix: builder 插件在 setup 阶段无法拿到 config
|
|
284
|
+
- 99213e4bae: fix: process does't exit when exec command
|
|
285
|
+
fix: 修复执行命令时进程未退出的问题
|
|
286
|
+
- b16fd96: fix: `modern-js/app-tools` pass error config to builder.
|
|
287
|
+
fix: `modern-js/app-tools` 传递错误的 config 给 builder.
|
|
288
|
+
- 7eefedd7ca: fix: add html-webpack-plugin `__internal__` options, for bottom template
|
|
289
|
+
fix: 为了 bottom template, 增加 `html-webpack-plugin` `__internal__` 配置项,
|
|
290
|
+
- 14b712d: fix: use consistent alias type and default value across packages
|
|
291
|
+
|
|
292
|
+
fix: 在各个包中使用一致的 alias 类型定义和默认值
|
|
293
|
+
|
|
294
|
+
- Updated dependencies [c9f912ca4d]
|
|
295
|
+
- Updated dependencies [95be7cc49c]
|
|
296
|
+
- Updated dependencies [e439457a51]
|
|
297
|
+
- Updated dependencies [4d1545f8c0]
|
|
298
|
+
- Updated dependencies [2bc090c089]
|
|
299
|
+
- Updated dependencies [f96a725211]
|
|
300
|
+
- Updated dependencies [828f42f9ce]
|
|
301
|
+
- Updated dependencies [c745686]
|
|
302
|
+
- Updated dependencies [c9e800d39a]
|
|
303
|
+
- Updated dependencies [0ff846f]
|
|
304
|
+
- Updated dependencies [57077b2]
|
|
305
|
+
- Updated dependencies [d032d49]
|
|
306
|
+
- Updated dependencies [2ff6167]
|
|
307
|
+
- Updated dependencies [287f298990]
|
|
308
|
+
- Updated dependencies [15bf09d9c8]
|
|
309
|
+
- Updated dependencies [423188db70]
|
|
310
|
+
- Updated dependencies [fd2d652]
|
|
311
|
+
- Updated dependencies [0c2d8dae31]
|
|
312
|
+
- Updated dependencies [2edad29]
|
|
313
|
+
- Updated dependencies [85edee888c]
|
|
314
|
+
- Updated dependencies [a2509bfbdb]
|
|
315
|
+
- Updated dependencies [3998875791]
|
|
316
|
+
- Updated dependencies [3998875791]
|
|
317
|
+
- Updated dependencies [ba86b8b711]
|
|
318
|
+
- Updated dependencies [61f21d1e77]
|
|
319
|
+
- Updated dependencies [5402fdb]
|
|
320
|
+
- Updated dependencies [2ae58176fe]
|
|
321
|
+
- Updated dependencies [92f0ead]
|
|
322
|
+
- Updated dependencies [edd1cfb1af]
|
|
323
|
+
- Updated dependencies [5d67c26]
|
|
324
|
+
- Updated dependencies [cc971eabfc]
|
|
325
|
+
- Updated dependencies [5b9049f]
|
|
326
|
+
- Updated dependencies [d4a4566]
|
|
327
|
+
- Updated dependencies [18360a38d7]
|
|
328
|
+
- Updated dependencies [6bda14ed71]
|
|
329
|
+
- Updated dependencies [0b314e6946]
|
|
330
|
+
- Updated dependencies [92004d1]
|
|
331
|
+
- Updated dependencies [b8bbe036c7]
|
|
332
|
+
- Updated dependencies [40ed587]
|
|
333
|
+
- Updated dependencies [af4422d]
|
|
334
|
+
- Updated dependencies [87c1ff8]
|
|
335
|
+
- Updated dependencies [d5a31df781]
|
|
336
|
+
- Updated dependencies [dda38c9]
|
|
337
|
+
- Updated dependencies [102d32e4ba]
|
|
338
|
+
- Updated dependencies [c258e34202]
|
|
339
|
+
- Updated dependencies [7248342e4d]
|
|
340
|
+
- Updated dependencies [568eab1e42]
|
|
341
|
+
- Updated dependencies [8b8e1bb571]
|
|
342
|
+
- Updated dependencies [3bbea92b2a]
|
|
343
|
+
- Updated dependencies [ae71096d45]
|
|
344
|
+
- Updated dependencies [73cd29dd9f]
|
|
345
|
+
- Updated dependencies [a23010138d]
|
|
346
|
+
- Updated dependencies [75d1b2657c]
|
|
347
|
+
- Updated dependencies [18aaf42]
|
|
348
|
+
- Updated dependencies [f179749]
|
|
349
|
+
- Updated dependencies [3fae2d0]
|
|
350
|
+
- Updated dependencies [8a6d45f]
|
|
351
|
+
- Updated dependencies [ebbeed1]
|
|
352
|
+
- Updated dependencies [90e2879520]
|
|
353
|
+
- Updated dependencies [df41d71]
|
|
354
|
+
- Updated dependencies [f727e5c6cc]
|
|
355
|
+
- Updated dependencies [5e3cecd523]
|
|
356
|
+
- Updated dependencies [abf3421]
|
|
357
|
+
- Updated dependencies [da2d1fc3c2]
|
|
358
|
+
- Updated dependencies [543be9558e]
|
|
359
|
+
- Updated dependencies [14b712d]
|
|
360
|
+
- @modern-js/builder-webpack-provider@2.0.0-beta.1
|
|
361
|
+
- @modern-js/builder-shared@2.0.0-beta.1
|
|
362
|
+
- @modern-js/core@2.0.0-beta.1
|
|
363
|
+
- @modern-js/prod-server@2.0.0-beta.1
|
|
364
|
+
- @modern-js/builder-plugin-esbuild@2.0.0-beta.1
|
|
365
|
+
- @modern-js/server@2.0.0-beta.1
|
|
366
|
+
- @modern-js/node-bundle-require@2.0.0-beta.1
|
|
367
|
+
- @modern-js/utils@2.0.0-beta.1
|
|
368
|
+
- @modern-js/builder-plugin-node-polyfill@2.0.0-beta.1
|
|
369
|
+
- @modern-js/types@2.0.0-beta.1
|
|
370
|
+
- @modern-js/plugin-lint@2.0.0-beta.1
|
|
371
|
+
- @modern-js/plugin@2.0.0-beta.1
|
|
372
|
+
- @modern-js/builder@2.0.0-beta.1
|
|
373
|
+
- @modern-js/plugin-data-loader@2.0.0-beta.1
|
|
374
|
+
- @modern-js/plugin-i18n@2.0.0-beta.1
|
|
375
|
+
- @modern-js/new-action@2.0.0-beta.1
|
|
376
|
+
- @modern-js/upgrade@2.0.0-beta.1
|
|
377
|
+
|
|
3
378
|
## 2.0.0-beta.0
|
|
4
379
|
|
|
5
380
|
### Major Changes
|
|
@@ -8,11 +8,9 @@ import { getClientRoutes, getClientRoutesLegacy } from "./getClientRoutes";
|
|
|
8
8
|
import { FILE_SYSTEM_ROUTES_FILE_NAME, ENTRY_POINT_FILE_NAME, ENTRY_BOOTSTRAP_FILE_NAME } from "./constants";
|
|
9
9
|
import { getDefaultImports } from "./utils";
|
|
10
10
|
import { walk } from "./nestedRoutes";
|
|
11
|
-
|
|
12
11
|
const createImportSpecifier = specifiers => {
|
|
13
12
|
let defaults = '';
|
|
14
13
|
const named = [];
|
|
15
|
-
|
|
16
14
|
for (const {
|
|
17
15
|
local,
|
|
18
16
|
imported
|
|
@@ -25,7 +23,6 @@ const createImportSpecifier = specifiers => {
|
|
|
25
23
|
named.push(imported);
|
|
26
24
|
}
|
|
27
25
|
}
|
|
28
|
-
|
|
29
26
|
if (defaults && named.length) {
|
|
30
27
|
return `${defaults}, { ${named.join(', ')} }`;
|
|
31
28
|
} else if (defaults) {
|
|
@@ -34,12 +31,10 @@ const createImportSpecifier = specifiers => {
|
|
|
34
31
|
return `{ ${named.join(', ')} }`;
|
|
35
32
|
}
|
|
36
33
|
};
|
|
37
|
-
|
|
38
34
|
export const createImportStatements = statements => {
|
|
39
35
|
// merge import statements with the same value.
|
|
40
36
|
const deDuplicated = [];
|
|
41
37
|
const seen = new Map();
|
|
42
|
-
|
|
43
38
|
for (const {
|
|
44
39
|
value,
|
|
45
40
|
specifiers,
|
|
@@ -54,22 +49,19 @@ export const createImportStatements = statements => {
|
|
|
54
49
|
seen.set(value, specifiers);
|
|
55
50
|
} else {
|
|
56
51
|
var _deDuplicated$modifyI, _deDuplicated$modifyI2;
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
52
|
+
seen.get(value).push(...specifiers);
|
|
53
|
+
// make "initialize" param can be connected when multiple plugins were imported from same package
|
|
60
54
|
const modifyIndex = deDuplicated.findIndex(v => v.value === value);
|
|
61
55
|
const originInitialize = (_deDuplicated$modifyI = (_deDuplicated$modifyI2 = deDuplicated[modifyIndex]) === null || _deDuplicated$modifyI2 === void 0 ? void 0 : _deDuplicated$modifyI2.initialize) !== null && _deDuplicated$modifyI !== void 0 ? _deDuplicated$modifyI : '';
|
|
62
56
|
deDuplicated[modifyIndex].initialize = originInitialize.concat(`\n${initialize || ''}`);
|
|
63
57
|
}
|
|
64
58
|
}
|
|
65
|
-
|
|
66
59
|
return deDuplicated.map(({
|
|
67
60
|
value,
|
|
68
61
|
specifiers,
|
|
69
62
|
initialize
|
|
70
63
|
}) => `import ${createImportSpecifier(specifiers)} from '${value}';\n${initialize || ''}`).join('\n');
|
|
71
64
|
};
|
|
72
|
-
|
|
73
65
|
const buildLoader = async (entry, outfile) => {
|
|
74
66
|
const loader = {
|
|
75
67
|
'.js': 'jsx',
|
|
@@ -89,32 +81,27 @@ const buildLoader = async (entry, outfile) => {
|
|
|
89
81
|
outfile,
|
|
90
82
|
plugins: [{
|
|
91
83
|
name: 'make-all-packages-external',
|
|
92
|
-
|
|
93
84
|
setup(build) {
|
|
94
85
|
// https://github.com/evanw/esbuild/issues/619#issuecomment-751995294
|
|
95
86
|
build.onResolve({
|
|
96
87
|
filter: EXTERNAL_REGEXP
|
|
97
88
|
}, args => {
|
|
98
|
-
let external = true;
|
|
99
|
-
|
|
89
|
+
let external = true;
|
|
90
|
+
// FIXME: windows external entrypoint
|
|
100
91
|
if (args.kind === 'entry-point') {
|
|
101
92
|
external = false;
|
|
102
93
|
}
|
|
103
|
-
|
|
104
94
|
return {
|
|
105
95
|
path: args.path,
|
|
106
96
|
external
|
|
107
97
|
};
|
|
108
98
|
});
|
|
109
99
|
}
|
|
110
|
-
|
|
111
100
|
}]
|
|
112
101
|
});
|
|
113
102
|
};
|
|
114
|
-
|
|
115
103
|
export const generateCode = async (appContext, config, entrypoints, api) => {
|
|
116
104
|
var _config$runtime, _config$runtime$route;
|
|
117
|
-
|
|
118
105
|
const {
|
|
119
106
|
internalDirectory,
|
|
120
107
|
distDirectory,
|
|
@@ -126,10 +113,9 @@ export const generateCode = async (appContext, config, entrypoints, api) => {
|
|
|
126
113
|
const islegacy = Boolean(config === null || config === void 0 ? void 0 : (_config$runtime = config.runtime) === null || _config$runtime === void 0 ? void 0 : (_config$runtime$route = _config$runtime.router) === null || _config$runtime$route === void 0 ? void 0 : _config$runtime$route.legacy);
|
|
127
114
|
const {
|
|
128
115
|
mountId
|
|
129
|
-
} = config.
|
|
116
|
+
} = config.html;
|
|
130
117
|
const getRoutes = islegacy ? getClientRoutesLegacy : getClientRoutes;
|
|
131
118
|
await Promise.all(entrypoints.map(generateEntryCode));
|
|
132
|
-
|
|
133
119
|
async function generateEntryCode(entrypoint) {
|
|
134
120
|
const {
|
|
135
121
|
entryName,
|
|
@@ -137,13 +123,11 @@ export const generateCode = async (appContext, config, entrypoints, api) => {
|
|
|
137
123
|
customBootstrap,
|
|
138
124
|
fileSystemRoutes
|
|
139
125
|
} = entrypoint;
|
|
140
|
-
|
|
141
126
|
if (isAutoMount) {
|
|
142
127
|
// generate routes file for file system routes entrypoint.
|
|
143
128
|
if (fileSystemRoutes) {
|
|
144
129
|
let initialRoutes = [];
|
|
145
130
|
let nestedRoute = null;
|
|
146
|
-
|
|
147
131
|
if (entrypoint.entry) {
|
|
148
132
|
initialRoutes = getRoutes({
|
|
149
133
|
entrypoint,
|
|
@@ -153,24 +137,21 @@ export const generateCode = async (appContext, config, entrypoints, api) => {
|
|
|
153
137
|
internalDirAlias
|
|
154
138
|
});
|
|
155
139
|
}
|
|
156
|
-
|
|
157
140
|
if (entrypoint.nestedRoutesEntry) {
|
|
158
141
|
if (!islegacy) {
|
|
159
142
|
nestedRoute = await walk(entrypoint.nestedRoutesEntry, entrypoint.nestedRoutesEntry, {
|
|
160
143
|
name: internalSrcAlias,
|
|
161
144
|
basename: srcDirectory
|
|
162
|
-
});
|
|
163
|
-
|
|
145
|
+
}, entrypoint.entryName);
|
|
164
146
|
if (nestedRoute) {
|
|
165
147
|
initialRoutes.unshift(nestedRoute);
|
|
166
148
|
}
|
|
167
149
|
} else {
|
|
168
|
-
logger.error('Nested routes is not supported in legacy mode.');
|
|
169
|
-
|
|
150
|
+
logger.error('Nested routes is not supported in legacy mode.');
|
|
151
|
+
// eslint-disable-next-line no-process-exit
|
|
170
152
|
process.exit(1);
|
|
171
153
|
}
|
|
172
154
|
}
|
|
173
|
-
|
|
174
155
|
const {
|
|
175
156
|
routes
|
|
176
157
|
} = await hookRunners.modifyFileSystemRoutes({
|
|
@@ -180,13 +161,19 @@ export const generateCode = async (appContext, config, entrypoints, api) => {
|
|
|
180
161
|
const config = useResolvedConfigContext();
|
|
181
162
|
const ssr = config === null || config === void 0 ? void 0 : config.server.ssr;
|
|
182
163
|
let mode;
|
|
183
|
-
|
|
184
164
|
if (ssr) {
|
|
185
165
|
mode = typeof ssr === 'object' ? ssr.mode || 'string' : 'string';
|
|
186
166
|
} else {
|
|
187
167
|
mode = false;
|
|
188
168
|
}
|
|
189
|
-
|
|
169
|
+
if (mode === 'stream') {
|
|
170
|
+
const hasPageRoute = routes.some(route => 'type' in route && route.type === 'page');
|
|
171
|
+
if (hasPageRoute) {
|
|
172
|
+
logger.error('streaming ssr is not supported when pages dir exists');
|
|
173
|
+
// eslint-disable-next-line no-process-exit
|
|
174
|
+
process.exit(1);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
190
177
|
const {
|
|
191
178
|
code
|
|
192
179
|
} = await hookRunners.beforeGenerateRoutes({
|
|
@@ -194,10 +181,12 @@ export const generateCode = async (appContext, config, entrypoints, api) => {
|
|
|
194
181
|
code: templates.fileSystemRoutes({
|
|
195
182
|
routes,
|
|
196
183
|
ssrMode: mode,
|
|
197
|
-
nestedRoutesEntry: entrypoint.nestedRoutesEntry
|
|
184
|
+
nestedRoutesEntry: entrypoint.nestedRoutesEntry,
|
|
185
|
+
entryName: entrypoint.entryName
|
|
198
186
|
})
|
|
199
|
-
});
|
|
187
|
+
});
|
|
200
188
|
|
|
189
|
+
// extract nested router loaders
|
|
201
190
|
if (entrypoint.nestedRoutesEntry) {
|
|
202
191
|
const routesServerFile = path.join(internalDirectory, entryName, 'routes.server.js');
|
|
203
192
|
const outputRoutesServerFile = path.join(distDirectory, 'loader-routes', entryName, 'index.js');
|
|
@@ -212,11 +201,10 @@ export const generateCode = async (appContext, config, entrypoints, api) => {
|
|
|
212
201
|
await fs.writeFile(routesServerFile, code);
|
|
213
202
|
await buildLoader(routesServerFile, outputRoutesServerFile);
|
|
214
203
|
}
|
|
215
|
-
|
|
216
204
|
fs.outputFileSync(path.resolve(internalDirectory, `./${entryName}/${FILE_SYSTEM_ROUTES_FILE_NAME}`), code, 'utf8');
|
|
217
|
-
}
|
|
218
|
-
|
|
205
|
+
}
|
|
219
206
|
|
|
207
|
+
// call modifyEntryImports hook
|
|
220
208
|
const {
|
|
221
209
|
imports: importStatements
|
|
222
210
|
} = await hookRunners.modifyEntryImports({
|
|
@@ -228,15 +216,17 @@ export const generateCode = async (appContext, config, entrypoints, api) => {
|
|
|
228
216
|
internalDirAlias,
|
|
229
217
|
internalDirectory
|
|
230
218
|
})
|
|
231
|
-
});
|
|
219
|
+
});
|
|
232
220
|
|
|
221
|
+
// call modifyEntryRuntimePlugins hook
|
|
233
222
|
const {
|
|
234
223
|
plugins
|
|
235
224
|
} = await hookRunners.modifyEntryRuntimePlugins({
|
|
236
225
|
entrypoint,
|
|
237
226
|
plugins: []
|
|
238
|
-
});
|
|
227
|
+
});
|
|
239
228
|
|
|
229
|
+
// call modifyEntryRenderFunction hook
|
|
240
230
|
const {
|
|
241
231
|
code: renderFunction
|
|
242
232
|
} = await hookRunners.modifyEntryRenderFunction({
|
|
@@ -246,8 +236,9 @@ export const generateCode = async (appContext, config, entrypoints, api) => {
|
|
|
246
236
|
customBootstrap,
|
|
247
237
|
fileSystemRoutes
|
|
248
238
|
})
|
|
249
|
-
});
|
|
239
|
+
});
|
|
250
240
|
|
|
241
|
+
// call modifyEntryExport hook
|
|
251
242
|
const {
|
|
252
243
|
exportStatement
|
|
253
244
|
} = await hookRunners.modifyEntryExport({
|
|
@@ -261,8 +252,9 @@ export const generateCode = async (appContext, config, entrypoints, api) => {
|
|
|
261
252
|
exportStatement
|
|
262
253
|
});
|
|
263
254
|
const entryFile = path.resolve(internalDirectory, `./${entryName}/${ENTRY_POINT_FILE_NAME}`);
|
|
264
|
-
entrypoint.entry = entryFile;
|
|
255
|
+
entrypoint.entry = entryFile;
|
|
265
256
|
|
|
257
|
+
// generate entry file.
|
|
266
258
|
if (config.source.enableAsyncEntry) {
|
|
267
259
|
const {
|
|
268
260
|
code: asyncEntryCode
|
|
@@ -2,30 +2,24 @@ import path from 'path';
|
|
|
2
2
|
import { ensureAbsolutePath, fs, findExists, MAIN_ENTRY_NAME } from '@modern-js/utils';
|
|
3
3
|
import { getFileSystemEntry } from "./getFileSystemEntry";
|
|
4
4
|
import { JS_EXTENSIONS } from "./constants";
|
|
5
|
-
|
|
6
5
|
const ensureExtensions = file => {
|
|
7
6
|
if (!path.extname(file)) {
|
|
8
7
|
return findExists(JS_EXTENSIONS.map(ext => `${file}${ext}`)) || file;
|
|
9
8
|
}
|
|
10
|
-
|
|
11
9
|
return file;
|
|
12
10
|
};
|
|
13
|
-
|
|
14
11
|
const ifAlreadyExists = (entrypoints, checked) => entrypoints.some(entrypoint => {
|
|
15
12
|
if (ensureExtensions(entrypoint.entry) === ensureExtensions(checked.entry)) {
|
|
16
13
|
// reset entryName
|
|
17
14
|
checked.entryName = entrypoint.entryName;
|
|
18
15
|
return true;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
|
|
16
|
+
}
|
|
17
|
+
// filesystem routes entrypoint conflict with normal entrypoint.
|
|
22
18
|
if (entrypoint.entry.startsWith(checked.entry) || checked.entry.startsWith(entrypoint.entry)) {
|
|
23
19
|
throw new Error(`Entry configuration conflicts\n Your configuration: ${checked.entry}.\n Default entrypoint: ${entrypoint.entry}\n Please reset source.entries or set source.disableDefaultEntries to disable the default entry rules.`);
|
|
24
20
|
}
|
|
25
|
-
|
|
26
21
|
return false;
|
|
27
22
|
});
|
|
28
|
-
|
|
29
23
|
export const getBundleEntry = (appContext, config) => {
|
|
30
24
|
const {
|
|
31
25
|
appDirectory,
|
|
@@ -38,8 +32,9 @@ export const getBundleEntry = (appContext, config) => {
|
|
|
38
32
|
entriesDir
|
|
39
33
|
}
|
|
40
34
|
} = config;
|
|
41
|
-
const defaults = disableDefaultEntries ? [] : getFileSystemEntry(appContext, config);
|
|
35
|
+
const defaults = disableDefaultEntries ? [] : getFileSystemEntry(appContext, config);
|
|
42
36
|
|
|
37
|
+
// merge entrypoints from user config with directory convention.
|
|
43
38
|
if (entries) {
|
|
44
39
|
Object.keys(entries).forEach(name => {
|
|
45
40
|
const value = entries[name];
|
|
@@ -54,16 +49,14 @@ export const getBundleEntry = (appContext, config) => {
|
|
|
54
49
|
isAutoMount: !value.disableMount,
|
|
55
50
|
fileSystemRoutes: value.enableFileSystemRoutes ? {} : undefined
|
|
56
51
|
};
|
|
57
|
-
|
|
58
52
|
if (!ifAlreadyExists(defaults, entrypoint)) {
|
|
59
53
|
defaults.push(entrypoint);
|
|
60
54
|
}
|
|
61
55
|
});
|
|
62
56
|
}
|
|
63
|
-
|
|
64
57
|
if (!disableDefaultEntries) {
|
|
65
58
|
// find main entry point which server route is '/'.
|
|
66
|
-
const entriesDirAbs = ensureAbsolutePath(appDirectory, entriesDir);
|
|
59
|
+
const entriesDirAbs = ensureAbsolutePath(appDirectory, entriesDir || '');
|
|
67
60
|
const found = defaults.find(({
|
|
68
61
|
entryName,
|
|
69
62
|
entry,
|
|
@@ -71,6 +64,5 @@ export const getBundleEntry = (appContext, config) => {
|
|
|
71
64
|
}) => entryName === packageName || path.dirname(entry) === entriesDirAbs || path.dirname(_nestedRoutesEntry) === entriesDirAbs);
|
|
72
65
|
found && (found.entryName = MAIN_ENTRY_NAME);
|
|
73
66
|
}
|
|
74
|
-
|
|
75
67
|
return defaults;
|
|
76
68
|
};
|