@bleedingdev/modern-js-app-tools 3.5.0-ultramodern.98 → 3.5.0-ultramodern.99
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/builder/generator/createBuilderProviderConfig.js +5 -1
- package/dist/cjs/builder/generator/getBuilderEnvironments.js +7 -0
- package/dist/cjs/commands/build.js +2 -1
- package/dist/cjs/commands/deploy.js +4 -2
- package/dist/cjs/commands/index.js +0 -4
- package/dist/cjs/config/default.js +2 -0
- package/dist/cjs/index.js +56 -15
- package/dist/cjs/plugins/analyze/index.js +2 -2
- package/dist/cjs/plugins/analyze/utils.js +3 -2
- package/dist/cjs/plugins/initialize/index.js +4 -3
- package/dist/cjs/plugins/serverBuild.js +3 -2
- package/dist/esm/builder/generator/createBuilderProviderConfig.mjs +5 -1
- package/dist/esm/builder/generator/getBuilderEnvironments.mjs +7 -0
- package/dist/esm/commands/build.mjs +2 -1
- package/dist/esm/commands/deploy.mjs +4 -2
- package/dist/esm/commands/index.mjs +0 -4
- package/dist/esm/config/default.mjs +2 -0
- package/dist/esm/index.mjs +15 -1
- package/dist/esm/plugins/analyze/index.mjs +2 -2
- package/dist/esm/plugins/analyze/utils.mjs +3 -2
- package/dist/esm/plugins/initialize/index.mjs +4 -3
- package/dist/esm/plugins/serverBuild.mjs +3 -2
- package/dist/esm-node/builder/generator/createBuilderProviderConfig.mjs +5 -1
- package/dist/esm-node/builder/generator/getBuilderEnvironments.mjs +7 -0
- package/dist/esm-node/commands/build.mjs +2 -1
- package/dist/esm-node/commands/deploy.mjs +4 -2
- package/dist/esm-node/commands/index.mjs +0 -4
- package/dist/esm-node/config/default.mjs +2 -0
- package/dist/esm-node/index.mjs +15 -1
- package/dist/esm-node/plugins/analyze/index.mjs +2 -2
- package/dist/esm-node/plugins/analyze/utils.mjs +3 -2
- package/dist/esm-node/plugins/initialize/index.mjs +4 -3
- package/dist/esm-node/plugins/serverBuild.mjs +3 -2
- package/dist/types/commands/deploy.d.ts +2 -1
- package/dist/types/index.d.ts +4 -1
- package/dist/types/plugins/analyze/utils.d.ts +1 -1
- package/dist/types/types/config/dev.d.ts +6 -0
- package/docs/_nav.json +36 -0
- package/docs/apis/_meta.json +13 -0
- package/docs/apis/app/commands.mdx +205 -0
- package/docs/apis/app/hooks/_meta.json +28 -0
- package/docs/apis/app/hooks/api/lambda.mdx +13 -0
- package/docs/apis/app/hooks/config/_meta.json +1 -0
- package/docs/apis/app/hooks/config/favicon.mdx +29 -0
- package/docs/apis/app/hooks/config/html.mdx +9 -0
- package/docs/apis/app/hooks/config/icon.mdx +29 -0
- package/docs/apis/app/hooks/config/mock.mdx +10 -0
- package/docs/apis/app/hooks/config/public.mdx +30 -0
- package/docs/apis/app/hooks/config/upload.mdx +54 -0
- package/docs/apis/app/hooks/modern-config.mdx +9 -0
- package/docs/apis/app/hooks/server/server.mdx +10 -0
- package/docs/apis/app/hooks/shared.mdx +7 -0
- package/docs/apis/app/hooks/src/app.mdx +30 -0
- package/docs/apis/app/hooks/src/entry.mdx +39 -0
- package/docs/apis/app/hooks/src/entry.server.mdx +56 -0
- package/docs/apis/app/hooks/src/modern.runtime.mdx +9 -0
- package/docs/apis/app/hooks/src/routes.mdx +90 -0
- package/docs/apis/app/hooks/src/server.mdx +7 -0
- package/docs/apis/app/runtime/_meta.json +32 -0
- package/docs/apis/app/runtime/bff/use-backend-context.mdx +30 -0
- package/docs/apis/app/runtime/core/create-root.mdx +22 -0
- package/docs/apis/app/runtime/core/render.mdx +42 -0
- package/docs/apis/app/runtime/core/runtime-context.mdx +160 -0
- package/docs/apis/app/runtime/router/router.mdx +288 -0
- package/docs/apis/app/runtime/ssr/no-ssr.mdx +38 -0
- package/docs/apis/app/runtime/ssr/renderStreaming.mdx +71 -0
- package/docs/apis/app/runtime/ssr/renderString.mdx +64 -0
- package/docs/apis/app/runtime/ssr/requestHandler.mdx +48 -0
- package/docs/apis/app/runtime/utility/css-in-js.mdx +44 -0
- package/docs/apis/app/runtime/utility/head.mdx +38 -0
- package/docs/apis/app/runtime/utility/loadable.mdx +85 -0
- package/docs/components/auto-upgrade.mdx +0 -0
- package/docs/components/bff-upload.mdx +97 -0
- package/docs/components/build-output.mdx +45 -0
- package/docs/components/bundler.mdx +3 -0
- package/docs/components/convention-routing-motivation.mdx +0 -0
- package/docs/components/debug-app.mdx +15 -0
- package/docs/components/default-browserslist.mdx +7 -0
- package/docs/components/deploy-command.mdx +14 -0
- package/docs/components/deploy.mdx +1 -0
- package/docs/components/enable-bff-caution.mdx +3 -0
- package/docs/components/enable-bff.mdx +56 -0
- package/docs/components/enable-ssg.mdx +49 -0
- package/docs/components/entry-mode.mdx +0 -0
- package/docs/components/entry-scan-logic.mdx +7 -0
- package/docs/components/extend-bff-function.mdx +3 -0
- package/docs/components/hono.mdx +120 -0
- package/docs/components/init-app.mdx +93 -0
- package/docs/components/init-rspack-app.mdx +5 -0
- package/docs/components/internal-logger.mdx +25 -0
- package/docs/components/internal-metrics.mdx +20 -0
- package/docs/components/international/custom-instance-code.mdx +16 -0
- package/docs/components/international/init-options-desc.mdx +1 -0
- package/docs/components/international/install-command.mdx +10 -0
- package/docs/components/international/instance-code.mdx +16 -0
- package/docs/components/international/introduce.mdx +5 -0
- package/docs/components/international/platform-support.mdx +0 -0
- package/docs/components/language-config.mdx +9 -0
- package/docs/components/micro-frontend.mdx +6 -0
- package/docs/components/micro-master-manifest-config.mdx +15 -0
- package/docs/components/micro-runtime-config.mdx +17 -0
- package/docs/components/module-federation.mdx +7 -0
- package/docs/components/new-entry-tooltip.mdx +0 -0
- package/docs/components/nodeVersion.mdx +28 -0
- package/docs/components/other-plugins.mdx +0 -0
- package/docs/components/output-asset-prefix-extend.mdx +0 -0
- package/docs/components/output-distpath-warning.mdx +0 -0
- package/docs/components/output-polyfill-extend.mdx +1 -0
- package/docs/components/prerequisites.mdx +18 -0
- package/docs/components/release-note.mdx +1 -0
- package/docs/components/routes-practice.mdx +0 -0
- package/docs/components/rsbuild-config-tooltip.mdx +5 -0
- package/docs/components/rsbuild.mdx +3 -0
- package/docs/components/rsc-deploy-tip.mdx +1 -0
- package/docs/components/rspack.mdx +3 -0
- package/docs/components/rspackTip.mdx +7 -0
- package/docs/components/runtime-cli-config.mdx +0 -0
- package/docs/components/serve-command.mdx +22 -0
- package/docs/components/ssr-monitor.mdx +3 -0
- package/docs/components/stream-ssr-performance.mdx +0 -0
- package/docs/components/swc.mdx +3 -0
- package/docs/components/tech-stack-node-framework.mdx +1 -0
- package/docs/components/turtorials-example-list.mdx +2 -0
- package/docs/components/ua-polyfill.mdx +44 -0
- package/docs/components/upgrade-browserslist.mdx +0 -0
- package/docs/components/upgrade-config-deploy.mdx +0 -0
- package/docs/components/upgrade-faq.mdx +0 -0
- package/docs/configure/_meta.json +78 -0
- package/docs/configure/app/bff/cross-project.mdx +24 -0
- package/docs/configure/app/bff/effect.mdx +319 -0
- package/docs/configure/app/bff/prefix.mdx +33 -0
- package/docs/configure/app/bff/runtime-framework.mdx +30 -0
- package/docs/configure/app/builder-plugins.mdx +70 -0
- package/docs/configure/app/dev/asset-prefix.mdx +18 -0
- package/docs/configure/app/dev/before-start-url.mdx +21 -0
- package/docs/configure/app/dev/client.mdx +45 -0
- package/docs/configure/app/dev/hmr.mdx +14 -0
- package/docs/configure/app/dev/host.mdx +22 -0
- package/docs/configure/app/dev/https.mdx +81 -0
- package/docs/configure/app/dev/lazy-compilation.mdx +45 -0
- package/docs/configure/app/dev/live-reload.mdx +14 -0
- package/docs/configure/app/dev/mock-dir.mdx +35 -0
- package/docs/configure/app/dev/progress-bar.mdx +23 -0
- package/docs/configure/app/dev/server.mdx +128 -0
- package/docs/configure/app/dev/setup-middlewares.mdx +36 -0
- package/docs/configure/app/dev/start-url.mdx +53 -0
- package/docs/configure/app/dev/watch-files.mdx +31 -0
- package/docs/configure/app/dev/write-to-disk.mdx +14 -0
- package/docs/configure/app/experiments/source-build.mdx +33 -0
- package/docs/configure/app/html/app-icon.mdx +32 -0
- package/docs/configure/app/html/crossorigin.mdx +14 -0
- package/docs/configure/app/html/favicon.mdx +20 -0
- package/docs/configure/app/html/inject.mdx +14 -0
- package/docs/configure/app/html/meta.mdx +28 -0
- package/docs/configure/app/html/mount-id.mdx +14 -0
- package/docs/configure/app/html/output-structure.mdx +14 -0
- package/docs/configure/app/html/script-loading.mdx +14 -0
- package/docs/configure/app/html/tags.mdx +19 -0
- package/docs/configure/app/html/template-parameters.mdx +37 -0
- package/docs/configure/app/html/template.mdx +14 -0
- package/docs/configure/app/html/title.mdx +22 -0
- package/docs/configure/app/output/asset-prefix.mdx +18 -0
- package/docs/configure/app/output/assets-retry.mdx +81 -0
- package/docs/configure/app/output/charset.mdx +14 -0
- package/docs/configure/app/output/clean-dist-path.mdx +20 -0
- package/docs/configure/app/output/convert-to-rem.mdx +83 -0
- package/docs/configure/app/output/copy.mdx +14 -0
- package/docs/configure/app/output/css-modules.mdx +52 -0
- package/docs/configure/app/output/data-uri-limit.mdx +30 -0
- package/docs/configure/app/output/disable-css-module-extension.mdx +59 -0
- package/docs/configure/app/output/disable-inline-runtime-chunk.mdx +45 -0
- package/docs/configure/app/output/disable-svgr.mdx +22 -0
- package/docs/configure/app/output/disable-ts-checker.mdx +53 -0
- package/docs/configure/app/output/dist-path.mdx +51 -0
- package/docs/configure/app/output/enable-asset-manifest.mdx +40 -0
- package/docs/configure/app/output/enable-css-module-tsdeclaration.mdx +32 -0
- package/docs/configure/app/output/enable-inline-route-manifests.mdx +20 -0
- package/docs/configure/app/output/externals.mdx +24 -0
- package/docs/configure/app/output/filename-hash.mdx +14 -0
- package/docs/configure/app/output/filename.mdx +59 -0
- package/docs/configure/app/output/inject-styles.mdx +14 -0
- package/docs/configure/app/output/inline-scripts.mdx +33 -0
- package/docs/configure/app/output/inline-styles.mdx +33 -0
- package/docs/configure/app/output/legal-comments.mdx +22 -0
- package/docs/configure/app/output/minify.mdx +26 -0
- package/docs/configure/app/output/override-browserslist.mdx +26 -0
- package/docs/configure/app/output/polyfill.mdx +18 -0
- package/docs/configure/app/output/source-map.mdx +34 -0
- package/docs/configure/app/output/split-route-chunks.mdx +20 -0
- package/docs/configure/app/output/ssg.mdx +85 -0
- package/docs/configure/app/output/ssgByEntries.mdx +93 -0
- package/docs/configure/app/output/svg-default-export.mdx +34 -0
- package/docs/configure/app/output/temp-dir.mdx +24 -0
- package/docs/configure/app/performance/build-cache.mdx +48 -0
- package/docs/configure/app/performance/chunk-split.mdx +44 -0
- package/docs/configure/app/performance/dns-prefetch.mdx +19 -0
- package/docs/configure/app/performance/preconnect.mdx +20 -0
- package/docs/configure/app/performance/prefetch.mdx +25 -0
- package/docs/configure/app/performance/preload.mdx +27 -0
- package/docs/configure/app/performance/print-file-size.mdx +44 -0
- package/docs/configure/app/performance/profile.mdx +14 -0
- package/docs/configure/app/performance/remove-console.mdx +14 -0
- package/docs/configure/app/performance/remove-moment-locale.mdx +14 -0
- package/docs/configure/app/performance/rsdoctor.mdx +42 -0
- package/docs/configure/app/plugins.mdx +59 -0
- package/docs/configure/app/resolve/alias-strategy.mdx +14 -0
- package/docs/configure/app/resolve/alias.mdx +13 -0
- package/docs/configure/app/resolve/condition-names.mdx +18 -0
- package/docs/configure/app/resolve/dedupe.mdx +13 -0
- package/docs/configure/app/resolve/extensions.mdx +18 -0
- package/docs/configure/app/runtime/0-intro.mdx +61 -0
- package/docs/configure/app/runtime/plugins.mdx +58 -0
- package/docs/configure/app/runtime/router.mdx +39 -0
- package/docs/configure/app/security/check-syntax.mdx +73 -0
- package/docs/configure/app/security/nonce.mdx +19 -0
- package/docs/configure/app/security/sri.mdx +24 -0
- package/docs/configure/app/server/base-url.mdx +30 -0
- package/docs/configure/app/server/port.mdx +22 -0
- package/docs/configure/app/server/public-routes.mdx +26 -0
- package/docs/configure/app/server/routes.mdx +90 -0
- package/docs/configure/app/server/rsc.mdx +30 -0
- package/docs/configure/app/server/ssr-by-entries.mdx +29 -0
- package/docs/configure/app/server/ssr.mdx +85 -0
- package/docs/configure/app/server/tsconfig-path.mdx +63 -0
- package/docs/configure/app/source/alias-strategy.mdx +18 -0
- package/docs/configure/app/source/alias.mdx +27 -0
- package/docs/configure/app/source/config-dir.mdx +24 -0
- package/docs/configure/app/source/decorators.mdx +29 -0
- package/docs/configure/app/source/define.mdx +20 -0
- package/docs/configure/app/source/disable-default-entries.mdx +32 -0
- package/docs/configure/app/source/enable-async-entry.mdx +54 -0
- package/docs/configure/app/source/enable-async-pre-entry.mdx +30 -0
- package/docs/configure/app/source/entries-dir.mdx +39 -0
- package/docs/configure/app/source/entries.mdx +183 -0
- package/docs/configure/app/source/exclude.mdx +14 -0
- package/docs/configure/app/source/global-vars.mdx +110 -0
- package/docs/configure/app/source/include.mdx +40 -0
- package/docs/configure/app/source/main-entry-name.mdx +28 -0
- package/docs/configure/app/source/pre-entry.mdx +14 -0
- package/docs/configure/app/source/react-compiler.mdx +72 -0
- package/docs/configure/app/source/transform-import.mdx +31 -0
- package/docs/configure/app/split-chunks.mdx +17 -0
- package/docs/configure/app/tools/autoprefixer.mdx +48 -0
- package/docs/configure/app/tools/bundler-chain.mdx +30 -0
- package/docs/configure/app/tools/css-extract.mdx +37 -0
- package/docs/configure/app/tools/css-loader.mdx +21 -0
- package/docs/configure/app/tools/dev-server.mdx +117 -0
- package/docs/configure/app/tools/html-plugin.mdx +45 -0
- package/docs/configure/app/tools/less.mdx +85 -0
- package/docs/configure/app/tools/lightningcss-loader.mdx +39 -0
- package/docs/configure/app/tools/minify-css.mdx +57 -0
- package/docs/configure/app/tools/postcss.mdx +38 -0
- package/docs/configure/app/tools/rspack.mdx +14 -0
- package/docs/configure/app/tools/sass.mdx +82 -0
- package/docs/configure/app/tools/style-loader.mdx +14 -0
- package/docs/configure/app/tools/swc.mdx +69 -0
- package/docs/configure/app/tools/ts-checker.mdx +103 -0
- package/docs/configure/app/usage.mdx +276 -0
- package/docs/guides/_meta.json +37 -0
- package/docs/guides/advanced-features/_meta.json +32 -0
- package/docs/guides/advanced-features/bff/_meta.json +10 -0
- package/docs/guides/advanced-features/bff/cross-project.mdx +110 -0
- package/docs/guides/advanced-features/bff/data-platform.mdx +120 -0
- package/docs/guides/advanced-features/bff/extend-server.mdx +120 -0
- package/docs/guides/advanced-features/bff/frameworks.mdx +131 -0
- package/docs/guides/advanced-features/bff/function.mdx +265 -0
- package/docs/guides/advanced-features/bff/operators.mdx +629 -0
- package/docs/guides/advanced-features/bff/sdk.mdx +116 -0
- package/docs/guides/advanced-features/bff/upload.mdx +7 -0
- package/docs/guides/advanced-features/bff.mdx +22 -0
- package/docs/guides/advanced-features/build-performance.mdx +134 -0
- package/docs/guides/advanced-features/compatibility.mdx +81 -0
- package/docs/guides/advanced-features/international/_meta.json +10 -0
- package/docs/guides/advanced-features/international/advanced.mdx +132 -0
- package/docs/guides/advanced-features/international/api.mdx +271 -0
- package/docs/guides/advanced-features/international/best-practices.mdx +290 -0
- package/docs/guides/advanced-features/international/configuration.mdx +222 -0
- package/docs/guides/advanced-features/international/locale-detection.mdx +130 -0
- package/docs/guides/advanced-features/international/quick-start.mdx +112 -0
- package/docs/guides/advanced-features/international/resource-loading.mdx +158 -0
- package/docs/guides/advanced-features/international/routing.mdx +177 -0
- package/docs/guides/advanced-features/international.mdx +29 -0
- package/docs/guides/advanced-features/low-level.mdx +50 -0
- package/docs/guides/advanced-features/page-performance/_meta.json +1 -0
- package/docs/guides/advanced-features/page-performance/code-split.mdx +81 -0
- package/docs/guides/advanced-features/page-performance/inline-assets.mdx +163 -0
- package/docs/guides/advanced-features/page-performance/optimize-bundle.mdx +101 -0
- package/docs/guides/advanced-features/page-performance/react-compiler.mdx +51 -0
- package/docs/guides/advanced-features/server-monitor/_meta.json +1 -0
- package/docs/guides/advanced-features/server-monitor/logger.mdx +19 -0
- package/docs/guides/advanced-features/server-monitor/metrics.mdx +41 -0
- package/docs/guides/advanced-features/server-monitor/monitors.mdx +242 -0
- package/docs/guides/advanced-features/source-build.mdx +168 -0
- package/docs/guides/advanced-features/web-server.mdx +296 -0
- package/docs/guides/basic-features/_meta.json +49 -0
- package/docs/guides/basic-features/alias.mdx +106 -0
- package/docs/guides/basic-features/css/_meta.json +1 -0
- package/docs/guides/basic-features/css/css-in-js.mdx +69 -0
- package/docs/guides/basic-features/css/css-modules.mdx +212 -0
- package/docs/guides/basic-features/css/css.mdx +31 -0
- package/docs/guides/basic-features/css/tailwindcss.mdx +27 -0
- package/docs/guides/basic-features/data/_meta.json +1 -0
- package/docs/guides/basic-features/data/data-cache.mdx +515 -0
- package/docs/guides/basic-features/data/data-fetch.mdx +419 -0
- package/docs/guides/basic-features/data/data-write.mdx +230 -0
- package/docs/guides/basic-features/debug/_meta.json +1 -0
- package/docs/guides/basic-features/debug/mock.mdx +113 -0
- package/docs/guides/basic-features/debug/proxy.mdx +25 -0
- package/docs/guides/basic-features/debug/rsdoctor.mdx +47 -0
- package/docs/guides/basic-features/debug/using-storybook.mdx +100 -0
- package/docs/guides/basic-features/deploy.mdx +448 -0
- package/docs/guides/basic-features/env-vars.mdx +181 -0
- package/docs/guides/basic-features/html.mdx +259 -0
- package/docs/guides/basic-features/output-files.mdx +145 -0
- package/docs/guides/basic-features/render/_meta.json +1 -0
- package/docs/guides/basic-features/render/before-render.mdx +108 -0
- package/docs/guides/basic-features/render/overview.mdx +51 -0
- package/docs/guides/basic-features/render/rsc.mdx +533 -0
- package/docs/guides/basic-features/render/ssg.mdx +167 -0
- package/docs/guides/basic-features/render/ssr-cache.mdx +201 -0
- package/docs/guides/basic-features/render/ssr.mdx +323 -0
- package/docs/guides/basic-features/render/streaming-ssr.mdx +267 -0
- package/docs/guides/basic-features/routes/_meta.json +1 -0
- package/docs/guides/basic-features/routes/config-routes.mdx +427 -0
- package/docs/guides/basic-features/routes/routes.mdx +532 -0
- package/docs/guides/basic-features/static-assets/_meta.json +1 -0
- package/docs/guides/basic-features/static-assets/json-files.mdx +124 -0
- package/docs/guides/basic-features/static-assets/svg-assets.mdx +172 -0
- package/docs/guides/basic-features/static-assets/wasm-assets.mdx +66 -0
- package/docs/guides/basic-features/static-assets.mdx +164 -0
- package/docs/guides/basic-features/testing/_meta.json +1 -0
- package/docs/guides/basic-features/testing/playwright.mdx +111 -0
- package/docs/guides/basic-features/testing/rstest.mdx +192 -0
- package/docs/guides/concept/_meta.json +1 -0
- package/docs/guides/concept/builder.mdx +60 -0
- package/docs/guides/concept/entries.mdx +325 -0
- package/docs/guides/concept/server.mdx +35 -0
- package/docs/guides/get-started/_meta.json +9 -0
- package/docs/guides/get-started/ai-coding-agents.mdx +63 -0
- package/docs/guides/get-started/glossary.mdx +63 -0
- package/docs/guides/get-started/introduction.mdx +45 -0
- package/docs/guides/get-started/quick-start.mdx +92 -0
- package/docs/guides/get-started/tech-stack.mdx +97 -0
- package/docs/guides/get-started/ultramodern.mdx +433 -0
- package/docs/guides/get-started/upgrade.mdx +114 -0
- package/docs/guides/topic-detail/_meta.json +8 -0
- package/docs/guides/topic-detail/module-federation/_meta.json +1 -0
- package/docs/guides/topic-detail/module-federation/application.mdx +116 -0
- package/docs/guides/topic-detail/module-federation/deploy.mdx +104 -0
- package/docs/guides/topic-detail/module-federation/i18n.mdx +670 -0
- package/docs/guides/topic-detail/module-federation/introduce.mdx +36 -0
- package/docs/guides/topic-detail/module-federation/ssr.mdx +177 -0
- package/docs/guides/topic-detail/module-federation/usage.mdx +202 -0
- package/docs/guides/troubleshooting/_meta.json +1 -0
- package/docs/guides/troubleshooting/builder.mdx +114 -0
- package/docs/guides/troubleshooting/cli.mdx +39 -0
- package/docs/guides/troubleshooting/dependencies.mdx +123 -0
- package/docs/guides/troubleshooting/hmr.mdx +148 -0
- package/docs/guides/upgrade/_meta.json +1 -0
- package/docs/guides/upgrade/config.mdx +951 -0
- package/docs/guides/upgrade/entry.mdx +463 -0
- package/docs/guides/upgrade/other.mdx +183 -0
- package/docs/guides/upgrade/overview.mdx +33 -0
- package/docs/guides/upgrade/tailwindcss.mdx +92 -0
- package/docs/guides/upgrade/web-server.md +109 -0
- package/docs/index.md +4 -0
- package/package.json +43 -20
- package/scripts/copy-main-doc.mjs +50 -0
|
@@ -46,6 +46,10 @@ function modifyOutputConfig(config, appContext) {
|
|
|
46
46
|
};
|
|
47
47
|
}
|
|
48
48
|
function createBuilderProviderConfig(resolveConfig, appContext) {
|
|
49
|
+
const builderDevConfig = {
|
|
50
|
+
...resolveConfig.dev
|
|
51
|
+
};
|
|
52
|
+
delete builderDevConfig.mockDir;
|
|
49
53
|
const htmlConfig = {
|
|
50
54
|
...resolveConfig.html
|
|
51
55
|
};
|
|
@@ -64,7 +68,7 @@ function createBuilderProviderConfig(resolveConfig, appContext) {
|
|
|
64
68
|
...resolveConfig.source
|
|
65
69
|
},
|
|
66
70
|
dev: {
|
|
67
|
-
...
|
|
71
|
+
...builderDevConfig,
|
|
68
72
|
port: appContext.port
|
|
69
73
|
},
|
|
70
74
|
server: serverConfig,
|
|
@@ -82,6 +82,13 @@ function resolvePackageFile(packageName, filePath, paths) {
|
|
|
82
82
|
paths
|
|
83
83
|
}));
|
|
84
84
|
} catch {
|
|
85
|
+
try {
|
|
86
|
+
const packageJsonPath = require.resolve(`${packageName}/package.json`, {
|
|
87
|
+
paths
|
|
88
|
+
});
|
|
89
|
+
const packageFile = external_node_path_default().join(external_node_path_default().dirname(packageJsonPath), filePath);
|
|
90
|
+
if (external_node_fs_default().existsSync(packageFile)) return external_node_fs_default().realpathSync(packageFile);
|
|
91
|
+
} catch {}
|
|
85
92
|
const packageEntry = resolvePackageEntry(packageName, paths);
|
|
86
93
|
if (!packageEntry) return;
|
|
87
94
|
const packageRoot = findPackageRoot(packageEntry, packageName);
|
|
@@ -98,9 +98,10 @@ const build = async (api, options)=>{
|
|
|
98
98
|
utils_namespaceObject.logger.info('Starting production build...');
|
|
99
99
|
if (!appContext.builder) throw new Error('Expect the Builder to have been initialized, But the appContext.builder received `undefined`');
|
|
100
100
|
await appContext.builder.onAfterBuild(async ()=>copyEnvFiles(appContext.appDirectory, appContext.distDirectory));
|
|
101
|
-
await appContext.builder.build({
|
|
101
|
+
const buildResult = await appContext.builder.build({
|
|
102
102
|
watch: options?.watch
|
|
103
103
|
});
|
|
104
|
+
if (!options?.watch) await buildResult?.close();
|
|
104
105
|
};
|
|
105
106
|
exports.build = __webpack_exports__.build;
|
|
106
107
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
@@ -31,10 +31,12 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
31
31
|
deploy: ()=>deploy
|
|
32
32
|
});
|
|
33
33
|
const loadPlugins_js_namespaceObject = require("../utils/loadPlugins.js");
|
|
34
|
-
const
|
|
34
|
+
const external_build_js_namespaceObject = require("./build.js");
|
|
35
|
+
const deploy = async (api, options = {})=>{
|
|
35
36
|
const hooks = api.getHooks();
|
|
36
37
|
const { metaName } = api.getAppContext();
|
|
37
|
-
await (0, loadPlugins_js_namespaceObject.getServerPlugins)(api, metaName);
|
|
38
|
+
if (options.skipBuild) await (0, loadPlugins_js_namespaceObject.getServerPlugins)(api, metaName);
|
|
39
|
+
else await (0, external_build_js_namespaceObject.build)(api);
|
|
38
40
|
await hooks.onBeforeDeploy.call(options);
|
|
39
41
|
await hooks.deploy.call();
|
|
40
42
|
await hooks.onAfterDeploy.call(options);
|
|
@@ -56,10 +56,6 @@ const serverCommand = (program, api)=>{
|
|
|
56
56
|
};
|
|
57
57
|
const deployCommand = (program, api)=>{
|
|
58
58
|
program.command('deploy').usage('[options]').option('-c --config <config>', index_js_namespaceObject.i18n.t(index_js_namespaceObject.localeKeys.command.shared.config)).option('-s --skip-build', index_js_namespaceObject.i18n.t(index_js_namespaceObject.localeKeys.command.shared.skipBuild)).description(index_js_namespaceObject.i18n.t(index_js_namespaceObject.localeKeys.command.deploy.describe)).action(async (options)=>{
|
|
59
|
-
if (!options.skipBuild) {
|
|
60
|
-
const { build } = await import("./build.js");
|
|
61
|
-
await build(api);
|
|
62
|
-
}
|
|
63
59
|
const { deploy } = await import("./deploy.js");
|
|
64
60
|
await deploy(api, options);
|
|
65
61
|
process.exit(0);
|
|
@@ -31,10 +31,12 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
31
31
|
createDefaultConfig: ()=>createDefaultConfig,
|
|
32
32
|
isLazyCompilationSafeByDefault: ()=>isLazyCompilationSafeByDefault
|
|
33
33
|
});
|
|
34
|
+
const server_core_namespaceObject = require("@modern-js/server-core");
|
|
34
35
|
const utils_namespaceObject = require("@modern-js/utils");
|
|
35
36
|
const env_js_namespaceObject = require("../utils/env.js");
|
|
36
37
|
function createDefaultConfig(appContext) {
|
|
37
38
|
const dev = {
|
|
39
|
+
mockDir: `./${server_core_namespaceObject.AGGRED_DIR.mock}`,
|
|
38
40
|
cliShortcuts: {
|
|
39
41
|
help: false,
|
|
40
42
|
custom: (shortcuts = [])=>shortcuts.filter(({ key })=>'r' !== key && 'u' !== key && 'o' !== key)
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_modules__ = {
|
|
3
|
+
"./commands/build" (module) {
|
|
4
|
+
module.exports = require("./commands/build.js");
|
|
5
|
+
},
|
|
6
|
+
"./commands/deploy" (module) {
|
|
7
|
+
module.exports = require("./commands/deploy.js");
|
|
8
|
+
},
|
|
3
9
|
"./commands/dev" (module) {
|
|
4
10
|
module.exports = require("./commands/dev.js");
|
|
5
11
|
},
|
|
@@ -51,6 +57,9 @@ var __webpack_modules__ = {
|
|
|
51
57
|
"./types?6efa" (module) {
|
|
52
58
|
module.exports = require("./types/index.js");
|
|
53
59
|
},
|
|
60
|
+
"./utils/createServer" (module) {
|
|
61
|
+
module.exports = require("./utils/createServer.js");
|
|
62
|
+
},
|
|
54
63
|
"./utils/generateWatchFiles" (module) {
|
|
55
64
|
module.exports = require("./utils/generateWatchFiles.js");
|
|
56
65
|
},
|
|
@@ -164,7 +173,10 @@ var __webpack_exports__ = {};
|
|
|
164
173
|
"serve",
|
|
165
174
|
"generateWatchFiles",
|
|
166
175
|
"initAppContext",
|
|
167
|
-
"
|
|
176
|
+
"deploy",
|
|
177
|
+
"defineConfig",
|
|
178
|
+
"build",
|
|
179
|
+
"closeServer"
|
|
168
180
|
].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_defineConfig__rspack_import_19[__rspack_import_key];
|
|
169
181
|
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
170
182
|
var _presetUltramodern__rspack_import_20 = __webpack_require__("./presetUltramodern");
|
|
@@ -178,15 +190,20 @@ var __webpack_exports__ = {};
|
|
|
178
190
|
"serve",
|
|
179
191
|
"generateWatchFiles",
|
|
180
192
|
"initAppContext",
|
|
181
|
-
"
|
|
193
|
+
"deploy",
|
|
194
|
+
"defineConfig",
|
|
195
|
+
"build",
|
|
196
|
+
"closeServer"
|
|
182
197
|
].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_presetUltramodern__rspack_import_20[__rspack_import_key];
|
|
183
198
|
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
184
|
-
var
|
|
185
|
-
var
|
|
186
|
-
var
|
|
187
|
-
var
|
|
199
|
+
var _commands_build__rspack_import_21 = __webpack_require__("./commands/build");
|
|
200
|
+
var _commands_deploy__rspack_import_22 = __webpack_require__("./commands/deploy");
|
|
201
|
+
var _commands_dev__rspack_import_23 = __webpack_require__("./commands/dev");
|
|
202
|
+
var _commands_serve__rspack_import_24 = __webpack_require__("./commands/serve");
|
|
203
|
+
var _rsbuild__rspack_import_25 = __webpack_require__("./rsbuild");
|
|
204
|
+
var _types__rspack_import_26 = __webpack_require__("./types?6efa");
|
|
188
205
|
var __rspack_reexport = {};
|
|
189
|
-
for(const __rspack_import_key in
|
|
206
|
+
for(const __rspack_import_key in _types__rspack_import_26)if ([
|
|
190
207
|
"dev",
|
|
191
208
|
"resolveModernRsbuildConfig",
|
|
192
209
|
"mergeConfig",
|
|
@@ -195,10 +212,14 @@ var __webpack_exports__ = {};
|
|
|
195
212
|
"serve",
|
|
196
213
|
"generateWatchFiles",
|
|
197
214
|
"initAppContext",
|
|
198
|
-
"
|
|
199
|
-
|
|
215
|
+
"deploy",
|
|
216
|
+
"defineConfig",
|
|
217
|
+
"build",
|
|
218
|
+
"closeServer"
|
|
219
|
+
].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_types__rspack_import_26[__rspack_import_key];
|
|
200
220
|
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
201
|
-
var
|
|
221
|
+
var _utils_createServer__rspack_import_27 = __webpack_require__("./utils/createServer");
|
|
222
|
+
var _modern_js_plugin_cli__rspack_import_28 = __webpack_require__("@modern-js/plugin/cli");
|
|
202
223
|
const appTools = ()=>({
|
|
203
224
|
name: '@modern-js/app-tools',
|
|
204
225
|
usePlugins: [
|
|
@@ -264,7 +285,18 @@ var __webpack_exports__ = {};
|
|
|
264
285
|
].some((tag)=>(0, _modern_js_utils__rspack_import_3.getArgv)().includes(tag));
|
|
265
286
|
if (isSkipBuild) return;
|
|
266
287
|
}
|
|
267
|
-
|
|
288
|
+
const { command: contextCommand } = api.getAppContext();
|
|
289
|
+
const shouldClean = [
|
|
290
|
+
'dev',
|
|
291
|
+
'start',
|
|
292
|
+
'build',
|
|
293
|
+
'deploy'
|
|
294
|
+
].includes(command) || [
|
|
295
|
+
'dev',
|
|
296
|
+
'start',
|
|
297
|
+
'build'
|
|
298
|
+
].includes(contextCommand);
|
|
299
|
+
if (shouldClean) {
|
|
268
300
|
const resolvedConfig = api.getNormalizedConfig();
|
|
269
301
|
if (resolvedConfig.output.cleanDistPath) {
|
|
270
302
|
const appContext = api.getAppContext();
|
|
@@ -304,21 +336,27 @@ var __webpack_exports__ = {};
|
|
|
304
336
|
});
|
|
305
337
|
const __rspack_default_export = appTools;
|
|
306
338
|
__webpack_require__.d(__webpack_exports__, {
|
|
339
|
+
build: ()=>_commands_build__rspack_import_21.build,
|
|
340
|
+
closeServer: ()=>_utils_createServer__rspack_import_27.closeServer,
|
|
307
341
|
defineConfig: ()=>_defineConfig__rspack_import_19.defineConfig,
|
|
308
|
-
|
|
342
|
+
deploy: ()=>_commands_deploy__rspack_import_22.deploy,
|
|
343
|
+
dev: ()=>_commands_dev__rspack_import_23.dev,
|
|
309
344
|
generateWatchFiles: ()=>_utils_generateWatchFiles__rspack_import_16.generateWatchFiles,
|
|
310
345
|
initAppContext: ()=>_utils_initAppContext__rspack_import_17.initAppContext,
|
|
311
|
-
mergeConfig: ()=>
|
|
312
|
-
resolveModernRsbuildConfig: ()=>
|
|
313
|
-
serve: ()=>
|
|
346
|
+
mergeConfig: ()=>_modern_js_plugin_cli__rspack_import_28.mergeConfig,
|
|
347
|
+
resolveModernRsbuildConfig: ()=>_rsbuild__rspack_import_25.resolveModernRsbuildConfig,
|
|
348
|
+
serve: ()=>_commands_serve__rspack_import_24.serve
|
|
314
349
|
}, {
|
|
315
350
|
appTools: appTools,
|
|
316
351
|
default: __rspack_default_export
|
|
317
352
|
});
|
|
318
353
|
})();
|
|
319
354
|
exports.appTools = __webpack_exports__.appTools;
|
|
355
|
+
exports.build = __webpack_exports__.build;
|
|
356
|
+
exports.closeServer = __webpack_exports__.closeServer;
|
|
320
357
|
exports["default"] = __webpack_exports__["default"];
|
|
321
358
|
exports.defineConfig = __webpack_exports__.defineConfig;
|
|
359
|
+
exports.deploy = __webpack_exports__.deploy;
|
|
322
360
|
exports.dev = __webpack_exports__.dev;
|
|
323
361
|
exports.generateWatchFiles = __webpack_exports__.generateWatchFiles;
|
|
324
362
|
exports.initAppContext = __webpack_exports__.initAppContext;
|
|
@@ -327,8 +365,11 @@ exports.resolveModernRsbuildConfig = __webpack_exports__.resolveModernRsbuildCon
|
|
|
327
365
|
exports.serve = __webpack_exports__.serve;
|
|
328
366
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
329
367
|
"appTools",
|
|
368
|
+
"build",
|
|
369
|
+
"closeServer",
|
|
330
370
|
"default",
|
|
331
371
|
"defineConfig",
|
|
372
|
+
"deploy",
|
|
332
373
|
"dev",
|
|
333
374
|
"generateWatchFiles",
|
|
334
375
|
"initAppContext",
|
|
@@ -55,7 +55,7 @@ const analyze = ()=>({
|
|
|
55
55
|
const resolvedConfig = api.getNormalizedConfig();
|
|
56
56
|
const hooks = api.getHooks();
|
|
57
57
|
try {
|
|
58
|
-
if ((0, external_utils_js_namespaceObject.checkIsBuildCommands)()) utils_namespaceObject.fs.emptydirSync(appContext.internalDirectory);
|
|
58
|
+
if ((0, external_utils_js_namespaceObject.checkIsBuildCommands)(appContext.command)) utils_namespaceObject.fs.emptydirSync(appContext.internalDirectory);
|
|
59
59
|
} catch {}
|
|
60
60
|
const apiOnly = await (0, utils_namespaceObject.isApiOnly)(appContext.appDirectory, resolvedConfig.source?.entriesDir, appContext.apiDirectory);
|
|
61
61
|
const [{ getProdEntrypoints, getProdServerRoutes }] = await Promise.all([
|
|
@@ -157,7 +157,7 @@ const analyze = ()=>({
|
|
|
157
157
|
htmlTemplates
|
|
158
158
|
};
|
|
159
159
|
api.updateAppContext(appContext);
|
|
160
|
-
if ((0, external_utils_js_namespaceObject.checkIsBuildCommands)()) {
|
|
160
|
+
if ((0, external_utils_js_namespaceObject.checkIsBuildCommands)(appContext.command)) {
|
|
161
161
|
await hooks.generateEntryCode.call({
|
|
162
162
|
entrypoints
|
|
163
163
|
});
|
|
@@ -87,7 +87,7 @@ const parseModule = async ({ source, filename })=>{
|
|
|
87
87
|
return await (0, external_es_module_lexer_namespaceObject.parse)(content);
|
|
88
88
|
};
|
|
89
89
|
const getServerCombinedModuleFile = (internalDirectory, entryName)=>external_path_default().join(internalDirectory, entryName, 'server-loader-combined.js');
|
|
90
|
-
const checkIsBuildCommands = ()=>{
|
|
90
|
+
const checkIsBuildCommands = (contextCommand)=>{
|
|
91
91
|
const buildCommands = [
|
|
92
92
|
'dev',
|
|
93
93
|
'start',
|
|
@@ -97,7 +97,8 @@ const checkIsBuildCommands = ()=>{
|
|
|
97
97
|
'dev-worker'
|
|
98
98
|
];
|
|
99
99
|
const command = (0, utils_namespaceObject.getCommand)();
|
|
100
|
-
|
|
100
|
+
if (buildCommands.includes(command)) return true;
|
|
101
|
+
return 'dev' === contextCommand || 'start' === contextCommand || 'build' === contextCommand || 'deploy' === contextCommand;
|
|
101
102
|
};
|
|
102
103
|
const checkIsServeCommand = ()=>{
|
|
103
104
|
const command = (0, utils_namespaceObject.getCommand)();
|
|
@@ -57,7 +57,7 @@ const initialize = ()=>({
|
|
|
57
57
|
api.modifyResolvedConfig(async (resolved)=>{
|
|
58
58
|
let appContext = api.getAppContext();
|
|
59
59
|
const userConfig = api.getConfig();
|
|
60
|
-
const port = await getServerPort(resolved);
|
|
60
|
+
const port = await getServerPort(resolved, appContext.command);
|
|
61
61
|
appContext = {
|
|
62
62
|
...appContext,
|
|
63
63
|
port,
|
|
@@ -92,9 +92,10 @@ function stabilizeConfig(resolve, config, keys) {
|
|
|
92
92
|
resolve[key] = config[key] || {};
|
|
93
93
|
});
|
|
94
94
|
}
|
|
95
|
-
async function getServerPort(config) {
|
|
95
|
+
async function getServerPort(config, contextCommand) {
|
|
96
96
|
const prodPort = Number(process.env.PORT) || config.server.port || 8080;
|
|
97
|
-
|
|
97
|
+
const isProgrammaticDev = 'dev' === contextCommand || 'start' === contextCommand;
|
|
98
|
+
if ((0, utils_namespaceObject.isDev)() && ((0, utils_namespaceObject.isDevCommand)() || isProgrammaticDev)) return (0, utils_namespaceObject.getPort)(Number(process.env.PORT) || prodPort);
|
|
98
99
|
return prodPort;
|
|
99
100
|
}
|
|
100
101
|
exports["default"] = __webpack_exports__["default"];
|
|
@@ -60,7 +60,7 @@ const serverBuild = ()=>({
|
|
|
60
60
|
name: '@modern-js/server-build',
|
|
61
61
|
setup (api) {
|
|
62
62
|
api.onAfterBuild(async ()=>{
|
|
63
|
-
const { appDirectory, distDirectory, metaName } = api.getAppContext();
|
|
63
|
+
const { appDirectory, distDirectory, metaName, moduleType } = api.getAppContext();
|
|
64
64
|
if (!checkHasCache(appDirectory) && !checkHasConfig(appDirectory, metaName)) return;
|
|
65
65
|
const modernConfig = api.getNormalizedConfig();
|
|
66
66
|
const distDir = external_path_default().resolve(distDirectory);
|
|
@@ -80,7 +80,8 @@ const serverBuild = ()=>({
|
|
|
80
80
|
}, {
|
|
81
81
|
sourceDirs,
|
|
82
82
|
distDir,
|
|
83
|
-
tsconfigPath
|
|
83
|
+
tsconfigPath,
|
|
84
|
+
moduleType
|
|
84
85
|
});
|
|
85
86
|
});
|
|
86
87
|
}
|
|
@@ -14,6 +14,10 @@ function modifyOutputConfig(config, appContext) {
|
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
16
|
function createBuilderProviderConfig(resolveConfig, appContext) {
|
|
17
|
+
const builderDevConfig = {
|
|
18
|
+
...resolveConfig.dev
|
|
19
|
+
};
|
|
20
|
+
delete builderDevConfig.mockDir;
|
|
17
21
|
const htmlConfig = {
|
|
18
22
|
...resolveConfig.html
|
|
19
23
|
};
|
|
@@ -32,7 +36,7 @@ function createBuilderProviderConfig(resolveConfig, appContext) {
|
|
|
32
36
|
...resolveConfig.source
|
|
33
37
|
},
|
|
34
38
|
dev: {
|
|
35
|
-
...
|
|
39
|
+
...builderDevConfig,
|
|
36
40
|
port: appContext.port
|
|
37
41
|
},
|
|
38
42
|
server: serverConfig,
|
|
@@ -39,6 +39,13 @@ function resolvePackageFile(packageName, filePath, paths) {
|
|
|
39
39
|
paths
|
|
40
40
|
}));
|
|
41
41
|
} catch {
|
|
42
|
+
try {
|
|
43
|
+
const packageJsonPath = require.resolve(`${packageName}/package.json`, {
|
|
44
|
+
paths
|
|
45
|
+
});
|
|
46
|
+
const packageFile = node_path.join(node_path.dirname(packageJsonPath), filePath);
|
|
47
|
+
if (node_fs.existsSync(packageFile)) return node_fs.realpathSync(packageFile);
|
|
48
|
+
} catch {}
|
|
42
49
|
const packageEntry = resolvePackageEntry(packageName, paths);
|
|
43
50
|
if (!packageEntry) return;
|
|
44
51
|
const packageRoot = findPackageRoot(packageEntry, packageName);
|
|
@@ -56,8 +56,9 @@ const build = async (api, options)=>{
|
|
|
56
56
|
logger.info('Starting production build...');
|
|
57
57
|
if (!appContext.builder) throw new Error('Expect the Builder to have been initialized, But the appContext.builder received `undefined`');
|
|
58
58
|
await appContext.builder.onAfterBuild(async ()=>copyEnvFiles(appContext.appDirectory, appContext.distDirectory));
|
|
59
|
-
await appContext.builder.build({
|
|
59
|
+
const buildResult = await appContext.builder.build({
|
|
60
60
|
watch: options?.watch
|
|
61
61
|
});
|
|
62
|
+
if (!options?.watch) await buildResult?.close();
|
|
62
63
|
};
|
|
63
64
|
export { build };
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { getServerPlugins } from "../utils/loadPlugins.mjs";
|
|
2
|
-
|
|
2
|
+
import { build } from "./build.mjs";
|
|
3
|
+
const deploy = async (api, options = {})=>{
|
|
3
4
|
const hooks = api.getHooks();
|
|
4
5
|
const { metaName } = api.getAppContext();
|
|
5
|
-
await getServerPlugins(api, metaName);
|
|
6
|
+
if (options.skipBuild) await getServerPlugins(api, metaName);
|
|
7
|
+
else await build(api);
|
|
6
8
|
await hooks.onBeforeDeploy.call(options);
|
|
7
9
|
await hooks.deploy.call();
|
|
8
10
|
await hooks.onAfterDeploy.call(options);
|
|
@@ -19,10 +19,6 @@ const serverCommand = (program, api)=>{
|
|
|
19
19
|
};
|
|
20
20
|
const deployCommand = (program, api)=>{
|
|
21
21
|
program.command('deploy').usage('[options]').option('-c --config <config>', i18n.t(localeKeys.command.shared.config)).option('-s --skip-build', i18n.t(localeKeys.command.shared.skipBuild)).description(i18n.t(localeKeys.command.deploy.describe)).action(async (options)=>{
|
|
22
|
-
if (!options.skipBuild) {
|
|
23
|
-
const { build } = await import("./build.mjs");
|
|
24
|
-
await build(api);
|
|
25
|
-
}
|
|
26
22
|
const { deploy } = await import("./deploy.mjs");
|
|
27
23
|
await deploy(api, options);
|
|
28
24
|
process.exit(0);
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { AGGRED_DIR } from "@modern-js/server-core";
|
|
1
2
|
import { DEFAULT_ENTRY_NAME } from "@modern-js/utils";
|
|
2
3
|
import { getAutoInjectEnv } from "../utils/env.mjs";
|
|
3
4
|
function createDefaultConfig(appContext) {
|
|
4
5
|
const dev = {
|
|
6
|
+
mockDir: `./${AGGRED_DIR.mock}`,
|
|
5
7
|
cliShortcuts: {
|
|
6
8
|
help: false,
|
|
7
9
|
custom: (shortcuts = [])=>shortcuts.filter(({ key })=>'r' !== key && 'u' !== key && 'o' !== key)
|
package/dist/esm/index.mjs
CHANGED
|
@@ -85,7 +85,18 @@ const appTools = ()=>({
|
|
|
85
85
|
].some((tag)=>getArgv().includes(tag));
|
|
86
86
|
if (isSkipBuild) return;
|
|
87
87
|
}
|
|
88
|
-
|
|
88
|
+
const { command: contextCommand } = api.getAppContext();
|
|
89
|
+
const shouldClean = [
|
|
90
|
+
'dev',
|
|
91
|
+
'start',
|
|
92
|
+
'build',
|
|
93
|
+
'deploy'
|
|
94
|
+
].includes(command) || [
|
|
95
|
+
'dev',
|
|
96
|
+
'start',
|
|
97
|
+
'build'
|
|
98
|
+
].includes(contextCommand);
|
|
99
|
+
if (shouldClean) {
|
|
89
100
|
const resolvedConfig = api.getNormalizedConfig();
|
|
90
101
|
if (resolvedConfig.output.cleanDistPath) {
|
|
91
102
|
const appContext = api.getAppContext();
|
|
@@ -125,9 +136,12 @@ const appTools = ()=>({
|
|
|
125
136
|
});
|
|
126
137
|
const src = appTools;
|
|
127
138
|
export { defineConfig } from "./defineConfig.mjs";
|
|
139
|
+
export { build } from "./commands/build.mjs";
|
|
140
|
+
export { deploy } from "./commands/deploy.mjs";
|
|
128
141
|
export { dev } from "./commands/dev.mjs";
|
|
129
142
|
export { serve } from "./commands/serve.mjs";
|
|
130
143
|
export { resolveModernRsbuildConfig } from "./rsbuild.mjs";
|
|
144
|
+
export { closeServer } from "./utils/createServer.mjs";
|
|
131
145
|
export { mergeConfig } from "@modern-js/plugin/cli";
|
|
132
146
|
export default src;
|
|
133
147
|
export { appTools, generateWatchFiles, initAppContext };
|
|
@@ -23,7 +23,7 @@ const analyze = ()=>({
|
|
|
23
23
|
const resolvedConfig = api.getNormalizedConfig();
|
|
24
24
|
const hooks = api.getHooks();
|
|
25
25
|
try {
|
|
26
|
-
if (checkIsBuildCommands()) fs.emptydirSync(appContext.internalDirectory);
|
|
26
|
+
if (checkIsBuildCommands(appContext.command)) fs.emptydirSync(appContext.internalDirectory);
|
|
27
27
|
} catch {}
|
|
28
28
|
const apiOnly = await isApiOnly(appContext.appDirectory, resolvedConfig.source?.entriesDir, appContext.apiDirectory);
|
|
29
29
|
const [{ getProdEntrypoints, getProdServerRoutes }] = await Promise.all([
|
|
@@ -125,7 +125,7 @@ const analyze = ()=>({
|
|
|
125
125
|
htmlTemplates
|
|
126
126
|
};
|
|
127
127
|
api.updateAppContext(appContext);
|
|
128
|
-
if (checkIsBuildCommands()) {
|
|
128
|
+
if (checkIsBuildCommands(appContext.command)) {
|
|
129
129
|
await hooks.generateEntryCode.call({
|
|
130
130
|
entrypoints
|
|
131
131
|
});
|
|
@@ -38,7 +38,7 @@ const parseModule = async ({ source, filename })=>{
|
|
|
38
38
|
return await parse(content);
|
|
39
39
|
};
|
|
40
40
|
const getServerCombinedModuleFile = (internalDirectory, entryName)=>path.join(internalDirectory, entryName, 'server-loader-combined.js');
|
|
41
|
-
const checkIsBuildCommands = ()=>{
|
|
41
|
+
const checkIsBuildCommands = (contextCommand)=>{
|
|
42
42
|
const buildCommands = [
|
|
43
43
|
'dev',
|
|
44
44
|
'start',
|
|
@@ -48,7 +48,8 @@ const checkIsBuildCommands = ()=>{
|
|
|
48
48
|
'dev-worker'
|
|
49
49
|
];
|
|
50
50
|
const command = getCommand();
|
|
51
|
-
|
|
51
|
+
if (buildCommands.includes(command)) return true;
|
|
52
|
+
return 'dev' === contextCommand || 'start' === contextCommand || 'build' === contextCommand || 'deploy' === contextCommand;
|
|
52
53
|
};
|
|
53
54
|
const checkIsServeCommand = ()=>{
|
|
54
55
|
const command = getCommand();
|
|
@@ -25,7 +25,7 @@ const initialize = ()=>({
|
|
|
25
25
|
api.modifyResolvedConfig(async (resolved)=>{
|
|
26
26
|
let appContext = api.getAppContext();
|
|
27
27
|
const userConfig = api.getConfig();
|
|
28
|
-
const port = await getServerPort(resolved);
|
|
28
|
+
const port = await getServerPort(resolved, appContext.command);
|
|
29
29
|
appContext = {
|
|
30
30
|
...appContext,
|
|
31
31
|
port,
|
|
@@ -60,9 +60,10 @@ function stabilizeConfig(resolve, config, keys) {
|
|
|
60
60
|
resolve[key] = config[key] || {};
|
|
61
61
|
});
|
|
62
62
|
}
|
|
63
|
-
async function getServerPort(config) {
|
|
63
|
+
async function getServerPort(config, contextCommand) {
|
|
64
64
|
const prodPort = Number(process.env.PORT) || config.server.port || 8080;
|
|
65
|
-
|
|
65
|
+
const isProgrammaticDev = 'dev' === contextCommand || 'start' === contextCommand;
|
|
66
|
+
if (isDev() && (isDevCommand() || isProgrammaticDev)) return getPort(Number(process.env.PORT) || prodPort);
|
|
66
67
|
return prodPort;
|
|
67
68
|
}
|
|
68
69
|
export default initialize;
|
|
@@ -17,7 +17,7 @@ const serverBuild = ()=>({
|
|
|
17
17
|
name: '@modern-js/server-build',
|
|
18
18
|
setup (api) {
|
|
19
19
|
api.onAfterBuild(async ()=>{
|
|
20
|
-
const { appDirectory, distDirectory, metaName } = api.getAppContext();
|
|
20
|
+
const { appDirectory, distDirectory, metaName, moduleType } = api.getAppContext();
|
|
21
21
|
if (!checkHasCache(appDirectory) && !checkHasConfig(appDirectory, metaName)) return;
|
|
22
22
|
const modernConfig = api.getNormalizedConfig();
|
|
23
23
|
const distDir = path.resolve(distDirectory);
|
|
@@ -37,7 +37,8 @@ const serverBuild = ()=>({
|
|
|
37
37
|
}, {
|
|
38
38
|
sourceDirs,
|
|
39
39
|
distDir,
|
|
40
|
-
tsconfigPath
|
|
40
|
+
tsconfigPath,
|
|
41
|
+
moduleType
|
|
41
42
|
});
|
|
42
43
|
});
|
|
43
44
|
}
|
|
@@ -15,6 +15,10 @@ function modifyOutputConfig(config, appContext) {
|
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
17
|
function createBuilderProviderConfig(resolveConfig, appContext) {
|
|
18
|
+
const builderDevConfig = {
|
|
19
|
+
...resolveConfig.dev
|
|
20
|
+
};
|
|
21
|
+
delete builderDevConfig.mockDir;
|
|
18
22
|
const htmlConfig = {
|
|
19
23
|
...resolveConfig.html
|
|
20
24
|
};
|
|
@@ -33,7 +37,7 @@ function createBuilderProviderConfig(resolveConfig, appContext) {
|
|
|
33
37
|
...resolveConfig.source
|
|
34
38
|
},
|
|
35
39
|
dev: {
|
|
36
|
-
...
|
|
40
|
+
...builderDevConfig,
|
|
37
41
|
port: appContext.port
|
|
38
42
|
},
|
|
39
43
|
server: serverConfig,
|
|
@@ -44,6 +44,13 @@ function resolvePackageFile(packageName, filePath, paths) {
|
|
|
44
44
|
paths
|
|
45
45
|
}));
|
|
46
46
|
} catch {
|
|
47
|
+
try {
|
|
48
|
+
const packageJsonPath = require.resolve(`${packageName}/package.json`, {
|
|
49
|
+
paths
|
|
50
|
+
});
|
|
51
|
+
const packageFile = node_path.join(node_path.dirname(packageJsonPath), filePath);
|
|
52
|
+
if (node_fs.existsSync(packageFile)) return node_fs.realpathSync(packageFile);
|
|
53
|
+
} catch {}
|
|
47
54
|
const packageEntry = resolvePackageEntry(packageName, paths);
|
|
48
55
|
if (!packageEntry) return;
|
|
49
56
|
const packageRoot = findPackageRoot(packageEntry, packageName);
|
|
@@ -57,8 +57,9 @@ const build = async (api, options)=>{
|
|
|
57
57
|
logger.info('Starting production build...');
|
|
58
58
|
if (!appContext.builder) throw new Error('Expect the Builder to have been initialized, But the appContext.builder received `undefined`');
|
|
59
59
|
await appContext.builder.onAfterBuild(async ()=>copyEnvFiles(appContext.appDirectory, appContext.distDirectory));
|
|
60
|
-
await appContext.builder.build({
|
|
60
|
+
const buildResult = await appContext.builder.build({
|
|
61
61
|
watch: options?.watch
|
|
62
62
|
});
|
|
63
|
+
if (!options?.watch) await buildResult?.close();
|
|
63
64
|
};
|
|
64
65
|
export { build };
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import "node:module";
|
|
2
2
|
import { getServerPlugins } from "../utils/loadPlugins.mjs";
|
|
3
|
-
|
|
3
|
+
import { build } from "./build.mjs";
|
|
4
|
+
const deploy = async (api, options = {})=>{
|
|
4
5
|
const hooks = api.getHooks();
|
|
5
6
|
const { metaName } = api.getAppContext();
|
|
6
|
-
await getServerPlugins(api, metaName);
|
|
7
|
+
if (options.skipBuild) await getServerPlugins(api, metaName);
|
|
8
|
+
else await build(api);
|
|
7
9
|
await hooks.onBeforeDeploy.call(options);
|
|
8
10
|
await hooks.deploy.call();
|
|
9
11
|
await hooks.onAfterDeploy.call(options);
|
|
@@ -20,10 +20,6 @@ const serverCommand = (program, api)=>{
|
|
|
20
20
|
};
|
|
21
21
|
const deployCommand = (program, api)=>{
|
|
22
22
|
program.command('deploy').usage('[options]').option('-c --config <config>', i18n.t(localeKeys.command.shared.config)).option('-s --skip-build', i18n.t(localeKeys.command.shared.skipBuild)).description(i18n.t(localeKeys.command.deploy.describe)).action(async (options)=>{
|
|
23
|
-
if (!options.skipBuild) {
|
|
24
|
-
const { build } = await import("./build.mjs");
|
|
25
|
-
await build(api);
|
|
26
|
-
}
|
|
27
23
|
const { deploy } = await import("./deploy.mjs");
|
|
28
24
|
await deploy(api, options);
|
|
29
25
|
process.exit(0);
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import "node:module";
|
|
2
|
+
import { AGGRED_DIR } from "@modern-js/server-core";
|
|
2
3
|
import { DEFAULT_ENTRY_NAME } from "@modern-js/utils";
|
|
3
4
|
import { getAutoInjectEnv } from "../utils/env.mjs";
|
|
4
5
|
function createDefaultConfig(appContext) {
|
|
5
6
|
const dev = {
|
|
7
|
+
mockDir: `./${AGGRED_DIR.mock}`,
|
|
6
8
|
cliShortcuts: {
|
|
7
9
|
help: false,
|
|
8
10
|
custom: (shortcuts = [])=>shortcuts.filter(({ key })=>'r' !== key && 'u' !== key && 'o' !== key)
|
package/dist/esm-node/index.mjs
CHANGED
|
@@ -87,7 +87,18 @@ const appTools = ()=>({
|
|
|
87
87
|
].some((tag)=>getArgv().includes(tag));
|
|
88
88
|
if (isSkipBuild) return;
|
|
89
89
|
}
|
|
90
|
-
|
|
90
|
+
const { command: contextCommand } = api.getAppContext();
|
|
91
|
+
const shouldClean = [
|
|
92
|
+
'dev',
|
|
93
|
+
'start',
|
|
94
|
+
'build',
|
|
95
|
+
'deploy'
|
|
96
|
+
].includes(command) || [
|
|
97
|
+
'dev',
|
|
98
|
+
'start',
|
|
99
|
+
'build'
|
|
100
|
+
].includes(contextCommand);
|
|
101
|
+
if (shouldClean) {
|
|
91
102
|
const resolvedConfig = api.getNormalizedConfig();
|
|
92
103
|
if (resolvedConfig.output.cleanDistPath) {
|
|
93
104
|
const appContext = api.getAppContext();
|
|
@@ -127,9 +138,12 @@ const appTools = ()=>({
|
|
|
127
138
|
});
|
|
128
139
|
const src = appTools;
|
|
129
140
|
export { defineConfig } from "./defineConfig.mjs";
|
|
141
|
+
export { build } from "./commands/build.mjs";
|
|
142
|
+
export { deploy } from "./commands/deploy.mjs";
|
|
130
143
|
export { dev } from "./commands/dev.mjs";
|
|
131
144
|
export { serve } from "./commands/serve.mjs";
|
|
132
145
|
export { resolveModernRsbuildConfig } from "./rsbuild.mjs";
|
|
146
|
+
export { closeServer } from "./utils/createServer.mjs";
|
|
133
147
|
export { mergeConfig } from "@modern-js/plugin/cli";
|
|
134
148
|
export default src;
|
|
135
149
|
export { appTools, generateWatchFiles, initAppContext };
|