@bleedingdev/modern-js-app-tools 3.5.0-ultramodern.98 → 3.8.1-ultramodern.1
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/bin/modern-bundle-docs.js +7 -0
- package/dist/cjs/builder/generator/createBuilderProviderConfig.js +5 -1
- package/dist/cjs/builder/generator/getBuilderEnvironments.js +80 -11
- package/dist/cjs/bundleDocs.js +114 -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/deploy/platforms/cloudflare-output-verifier/index.js +1 -1
- package/dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.js +94 -18
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.mjs +1 -0
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +14 -0
- package/dist/cjs/plugins/initialize/index.js +4 -3
- package/dist/cjs/plugins/serverBuild.js +3 -2
- package/dist/cjs/ultramodern-release-envelope/framework-output.js +109 -57
- package/dist/esm/builder/generator/createBuilderProviderConfig.mjs +5 -1
- package/dist/esm/builder/generator/getBuilderEnvironments.mjs +70 -10
- package/dist/esm/bundleDocs.mjs +62 -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/deploy/platforms/cloudflare-output-verifier/index.mjs +1 -1
- package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.mjs +93 -18
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.mjs +1 -0
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +14 -0
- package/dist/esm/plugins/initialize/index.mjs +4 -3
- package/dist/esm/plugins/serverBuild.mjs +3 -2
- package/dist/esm/ultramodern-release-envelope/framework-output.mjs +107 -58
- package/dist/esm-node/builder/generator/createBuilderProviderConfig.mjs +5 -1
- package/dist/esm-node/builder/generator/getBuilderEnvironments.mjs +70 -10
- package/dist/esm-node/bundleDocs.mjs +63 -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/deploy/platforms/cloudflare-output-verifier/index.mjs +1 -1
- package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.mjs +93 -18
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.mjs +1 -0
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +14 -0
- package/dist/esm-node/plugins/initialize/index.mjs +4 -3
- package/dist/esm-node/plugins/serverBuild.mjs +3 -2
- package/dist/esm-node/ultramodern-release-envelope/framework-output.mjs +107 -58
- package/dist/types/builder/generator/getBuilderEnvironments.d.ts +29 -0
- package/dist/types/bundleDocs.d.ts +20 -0
- 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/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.d.ts +1 -1
- package/dist/types/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.d.mts +1 -1
- package/dist/types/plugins/deploy/platforms/templates/cloudflare-worker-mf-ssr-runtime-plugin.d.mts +13 -0
- package/dist/types/types/config/dev.d.ts +6 -0
- package/dist/types/ultramodern-release-envelope/framework-output.d.ts +1 -0
- package/docs/apis/app/commands.md +231 -0
- package/docs/apis/app/hooks/api/lambda.md +9 -0
- package/docs/apis/app/hooks/config/favicon.md +24 -0
- package/docs/apis/app/hooks/config/html.md +5 -0
- package/docs/apis/app/hooks/config/icon.md +24 -0
- package/docs/apis/app/hooks/config/mock.md +6 -0
- package/docs/apis/app/hooks/config/public.md +26 -0
- package/docs/apis/app/hooks/config/upload.md +50 -0
- package/docs/apis/app/hooks/modern-config.md +5 -0
- package/docs/apis/app/hooks/server/server.md +5 -0
- package/docs/apis/app/hooks/shared.md +3 -0
- package/docs/apis/app/hooks/src/app.md +30 -0
- package/docs/apis/app/hooks/src/entry.md +34 -0
- package/docs/apis/app/hooks/src/entry.server.md +51 -0
- package/docs/apis/app/hooks/src/modern.runtime.md +5 -0
- package/docs/apis/app/hooks/src/routes.md +86 -0
- package/docs/apis/app/hooks/src/server.md +3 -0
- package/docs/apis/app/runtime/bff/use-backend-context.md +27 -0
- package/docs/apis/app/runtime/core/create-root.md +19 -0
- package/docs/apis/app/runtime/core/render.md +39 -0
- package/docs/apis/app/runtime/core/runtime-context.md +156 -0
- package/docs/apis/app/runtime/router/router.md +283 -0
- package/docs/apis/app/runtime/ssr/no-ssr.md +35 -0
- package/docs/apis/app/runtime/ssr/renderStreaming.md +67 -0
- package/docs/apis/app/runtime/ssr/renderString.md +60 -0
- package/docs/apis/app/runtime/ssr/requestHandler.md +44 -0
- package/docs/apis/app/runtime/utility/css-in-js.md +40 -0
- package/docs/apis/app/runtime/utility/head.md +35 -0
- package/docs/apis/app/runtime/utility/loadable.md +82 -0
- package/docs/community/blog/2022-0708-updates.md +91 -0
- package/docs/community/blog/2022-0910-updates.md +76 -0
- package/docs/community/blog/overview.md +63 -0
- package/docs/community/blog/v2-release-note.md +238 -0
- package/docs/community/blog/v3-release-note.md +622 -0
- package/docs/community/contributing-guide.md +252 -0
- package/docs/community/releases.md +23 -0
- package/docs/community/showcase.md +24 -0
- package/docs/community/team.md +14 -0
- package/docs/configure/app/bff/cross-project.md +20 -0
- package/docs/configure/app/bff/effect.md +313 -0
- package/docs/configure/app/bff/prefix.md +29 -0
- package/docs/configure/app/bff/runtime-framework.md +26 -0
- package/docs/configure/app/builder-plugins.md +66 -0
- package/docs/configure/app/dev/asset-prefix.md +13 -0
- package/docs/configure/app/dev/before-start-url.md +17 -0
- package/docs/configure/app/dev/client.md +41 -0
- package/docs/configure/app/dev/hmr.md +10 -0
- package/docs/configure/app/dev/host.md +18 -0
- package/docs/configure/app/dev/https.md +77 -0
- package/docs/configure/app/dev/lazy-compilation.md +39 -0
- package/docs/configure/app/dev/live-reload.md +10 -0
- package/docs/configure/app/dev/mock-dir.md +31 -0
- package/docs/configure/app/dev/progress-bar.md +19 -0
- package/docs/configure/app/dev/server.md +124 -0
- package/docs/configure/app/dev/setup-middlewares.md +32 -0
- package/docs/configure/app/dev/start-url.md +48 -0
- package/docs/configure/app/dev/watch-files.md +27 -0
- package/docs/configure/app/dev/write-to-disk.md +10 -0
- package/docs/configure/app/experiments/source-build.md +31 -0
- package/docs/configure/app/html/app-icon.md +28 -0
- package/docs/configure/app/html/crossorigin.md +10 -0
- package/docs/configure/app/html/favicon.md +16 -0
- package/docs/configure/app/html/inject.md +10 -0
- package/docs/configure/app/html/meta.md +24 -0
- package/docs/configure/app/html/mount-id.md +10 -0
- package/docs/configure/app/html/output-structure.md +10 -0
- package/docs/configure/app/html/script-loading.md +10 -0
- package/docs/configure/app/html/tags.md +15 -0
- package/docs/configure/app/html/template-parameters.md +33 -0
- package/docs/configure/app/html/template.md +10 -0
- package/docs/configure/app/html/title.md +18 -0
- package/docs/configure/app/output/asset-prefix.md +11 -0
- package/docs/configure/app/output/assets-retry.md +77 -0
- package/docs/configure/app/output/charset.md +10 -0
- package/docs/configure/app/output/clean-dist-path.md +16 -0
- package/docs/configure/app/output/convert-to-rem.md +79 -0
- package/docs/configure/app/output/copy.md +10 -0
- package/docs/configure/app/output/css-modules.md +48 -0
- package/docs/configure/app/output/data-uri-limit.md +26 -0
- package/docs/configure/app/output/disable-css-module-extension.md +55 -0
- package/docs/configure/app/output/disable-inline-runtime-chunk.md +41 -0
- package/docs/configure/app/output/disable-svgr.md +18 -0
- package/docs/configure/app/output/disable-ts-checker.md +49 -0
- package/docs/configure/app/output/dist-path.md +43 -0
- package/docs/configure/app/output/enable-asset-manifest.md +36 -0
- package/docs/configure/app/output/enable-css-module-tsdeclaration.md +28 -0
- package/docs/configure/app/output/enable-inline-route-manifests.md +16 -0
- package/docs/configure/app/output/externals.md +20 -0
- package/docs/configure/app/output/filename-hash.md +10 -0
- package/docs/configure/app/output/filename.md +55 -0
- package/docs/configure/app/output/inject-styles.md +10 -0
- package/docs/configure/app/output/inline-scripts.md +29 -0
- package/docs/configure/app/output/inline-styles.md +29 -0
- package/docs/configure/app/output/legal-comments.md +18 -0
- package/docs/configure/app/output/minify.md +22 -0
- package/docs/configure/app/output/override-browserslist.md +22 -0
- package/docs/configure/app/output/polyfill.md +12 -0
- package/docs/configure/app/output/source-map.md +30 -0
- package/docs/configure/app/output/split-route-chunks.md +16 -0
- package/docs/configure/app/output/ssg.md +81 -0
- package/docs/configure/app/output/ssgByEntries.md +90 -0
- package/docs/configure/app/output/svg-default-export.md +30 -0
- package/docs/configure/app/output/temp-dir.md +20 -0
- package/docs/configure/app/performance/build-cache.md +44 -0
- package/docs/configure/app/performance/chunk-split.md +40 -0
- package/docs/configure/app/performance/dns-prefetch.md +15 -0
- package/docs/configure/app/performance/preconnect.md +16 -0
- package/docs/configure/app/performance/prefetch.md +21 -0
- package/docs/configure/app/performance/preload.md +23 -0
- package/docs/configure/app/performance/print-file-size.md +40 -0
- package/docs/configure/app/performance/profile.md +10 -0
- package/docs/configure/app/performance/remove-console.md +10 -0
- package/docs/configure/app/performance/remove-moment-locale.md +10 -0
- package/docs/configure/app/performance/rsdoctor.md +38 -0
- package/docs/configure/app/plugins.md +59 -0
- package/docs/configure/app/resolve/alias-strategy.md +10 -0
- package/docs/configure/app/resolve/alias.md +9 -0
- package/docs/configure/app/resolve/condition-names.md +13 -0
- package/docs/configure/app/resolve/dedupe.md +9 -0
- package/docs/configure/app/resolve/extensions.md +13 -0
- package/docs/configure/app/runtime/0-intro.md +58 -0
- package/docs/configure/app/runtime/plugins.md +58 -0
- package/docs/configure/app/runtime/router.md +35 -0
- package/docs/configure/app/security/check-syntax.md +69 -0
- package/docs/configure/app/security/nonce.md +15 -0
- package/docs/configure/app/security/sri.md +20 -0
- package/docs/configure/app/server/base-url.md +26 -0
- package/docs/configure/app/server/port.md +18 -0
- package/docs/configure/app/server/public-routes.md +22 -0
- package/docs/configure/app/server/routes.md +86 -0
- package/docs/configure/app/server/rsc.md +22 -0
- package/docs/configure/app/server/ssr-by-entries.md +25 -0
- package/docs/configure/app/server/ssr.md +80 -0
- package/docs/configure/app/server/tsconfig-path.md +59 -0
- package/docs/configure/app/source/alias-strategy.md +14 -0
- package/docs/configure/app/source/alias.md +23 -0
- package/docs/configure/app/source/config-dir.md +20 -0
- package/docs/configure/app/source/decorators.md +25 -0
- package/docs/configure/app/source/define.md +16 -0
- package/docs/configure/app/source/disable-default-entries.md +28 -0
- package/docs/configure/app/source/enable-async-entry.md +54 -0
- package/docs/configure/app/source/enable-async-pre-entry.md +26 -0
- package/docs/configure/app/source/entries-dir.md +35 -0
- package/docs/configure/app/source/entries.md +179 -0
- package/docs/configure/app/source/exclude.md +10 -0
- package/docs/configure/app/source/global-vars.md +106 -0
- package/docs/configure/app/source/include.md +36 -0
- package/docs/configure/app/source/main-entry-name.md +24 -0
- package/docs/configure/app/source/pre-entry.md +10 -0
- package/docs/configure/app/source/react-compiler.md +68 -0
- package/docs/configure/app/source/transform-import.md +27 -0
- package/docs/configure/app/split-chunks.md +17 -0
- package/docs/configure/app/tools/autoprefixer.md +44 -0
- package/docs/configure/app/tools/bundler-chain.md +26 -0
- package/docs/configure/app/tools/css-extract.md +33 -0
- package/docs/configure/app/tools/css-loader.md +17 -0
- package/docs/configure/app/tools/dev-server.md +113 -0
- package/docs/configure/app/tools/html-plugin.md +41 -0
- package/docs/configure/app/tools/less.md +81 -0
- package/docs/configure/app/tools/lightningcss-loader.md +35 -0
- package/docs/configure/app/tools/minify-css.md +53 -0
- package/docs/configure/app/tools/postcss.md +34 -0
- package/docs/configure/app/tools/rspack.md +10 -0
- package/docs/configure/app/tools/sass.md +78 -0
- package/docs/configure/app/tools/style-loader.md +10 -0
- package/docs/configure/app/tools/swc.md +65 -0
- package/docs/configure/app/tools/ts-checker.md +116 -0
- package/docs/configure/app/usage.md +276 -0
- package/docs/guides/advanced-features/bff/cross-project.md +109 -0
- package/docs/guides/advanced-features/bff/data-platform.md +116 -0
- package/docs/guides/advanced-features/bff/extend-server.md +120 -0
- package/docs/guides/advanced-features/bff/frameworks.md +243 -0
- package/docs/guides/advanced-features/bff/function.md +318 -0
- package/docs/guides/advanced-features/bff/operators.md +554 -0
- package/docs/guides/advanced-features/bff/sdk.md +116 -0
- package/docs/guides/advanced-features/bff/upload.md +101 -0
- package/docs/guides/advanced-features/bff.md +18 -0
- package/docs/guides/advanced-features/build-performance.md +130 -0
- package/docs/guides/advanced-features/compatibility.md +120 -0
- package/docs/guides/advanced-features/international/advanced.md +128 -0
- package/docs/guides/advanced-features/international/api.md +267 -0
- package/docs/guides/advanced-features/international/best-practices.md +286 -0
- package/docs/guides/advanced-features/international/configuration.md +228 -0
- package/docs/guides/advanced-features/international/locale-detection.md +126 -0
- package/docs/guides/advanced-features/international/quick-start.md +128 -0
- package/docs/guides/advanced-features/international/resource-loading.md +154 -0
- package/docs/guides/advanced-features/international/routing.md +173 -0
- package/docs/guides/advanced-features/international.md +27 -0
- package/docs/guides/advanced-features/low-level.md +46 -0
- package/docs/guides/advanced-features/page-performance/code-split.md +77 -0
- package/docs/guides/advanced-features/page-performance/inline-assets.md +159 -0
- package/docs/guides/advanced-features/page-performance/optimize-bundle.md +97 -0
- package/docs/guides/advanced-features/page-performance/react-compiler.md +51 -0
- package/docs/guides/advanced-features/server-monitor/logger.md +41 -0
- package/docs/guides/advanced-features/server-monitor/metrics.md +58 -0
- package/docs/guides/advanced-features/server-monitor/monitors.md +242 -0
- package/docs/guides/advanced-features/source-build.md +164 -0
- package/docs/guides/advanced-features/web-server.md +288 -0
- package/docs/guides/basic-features/alias.md +102 -0
- package/docs/guides/basic-features/css/css-in-js.md +72 -0
- package/docs/guides/basic-features/css/css-modules.md +212 -0
- package/docs/guides/basic-features/css/css.md +27 -0
- package/docs/guides/basic-features/css/tailwindcss.md +27 -0
- package/docs/guides/basic-features/data/data-cache.md +510 -0
- package/docs/guides/basic-features/data/data-fetch.md +415 -0
- package/docs/guides/basic-features/data/data-write.md +227 -0
- package/docs/guides/basic-features/debug/mock.md +109 -0
- package/docs/guides/basic-features/debug/proxy.md +21 -0
- package/docs/guides/basic-features/debug/rsdoctor.md +47 -0
- package/docs/guides/basic-features/debug/using-storybook.md +112 -0
- package/docs/guides/basic-features/deploy.md +458 -0
- package/docs/guides/basic-features/env-vars.md +177 -0
- package/docs/guides/basic-features/html.md +255 -0
- package/docs/guides/basic-features/output-files.md +141 -0
- package/docs/guides/basic-features/render/before-render.md +108 -0
- package/docs/guides/basic-features/render/overview.md +47 -0
- package/docs/guides/basic-features/render/rsc.md +516 -0
- package/docs/guides/basic-features/render/ssg.md +228 -0
- package/docs/guides/basic-features/render/ssr-cache.md +201 -0
- package/docs/guides/basic-features/render/ssr.md +321 -0
- package/docs/guides/basic-features/render/streaming-ssr.md +264 -0
- package/docs/guides/basic-features/routes/config-routes.md +426 -0
- package/docs/guides/basic-features/routes/routes.md +524 -0
- package/docs/guides/basic-features/static-assets/json-files.md +120 -0
- package/docs/guides/basic-features/static-assets/svg-assets.md +168 -0
- package/docs/guides/basic-features/static-assets/wasm-assets.md +62 -0
- package/docs/guides/basic-features/static-assets.md +160 -0
- package/docs/guides/basic-features/testing/playwright.md +120 -0
- package/docs/guides/basic-features/testing/rstest.md +251 -0
- package/docs/guides/concept/builder.md +37 -0
- package/docs/guides/concept/entries.md +319 -0
- package/docs/guides/concept/server.md +35 -0
- package/docs/guides/get-started/ai-coding-agents.md +58 -0
- package/docs/guides/get-started/glossary.md +63 -0
- package/docs/guides/get-started/introduction.md +40 -0
- package/docs/guides/get-started/quick-start.md +269 -0
- package/docs/guides/get-started/tech-stack.md +91 -0
- package/docs/guides/get-started/ultramodern.md +440 -0
- package/docs/guides/get-started/upgrade.md +118 -0
- package/docs/guides/topic-detail/module-federation/application.md +116 -0
- package/docs/guides/topic-detail/module-federation/deploy.md +104 -0
- package/docs/guides/topic-detail/module-federation/i18n.md +670 -0
- package/docs/guides/topic-detail/module-federation/introduce.md +35 -0
- package/docs/guides/topic-detail/module-federation/ssr.md +182 -0
- package/docs/guides/topic-detail/module-federation/usage.md +219 -0
- package/docs/guides/troubleshooting/builder.md +110 -0
- package/docs/guides/troubleshooting/cli.md +35 -0
- package/docs/guides/troubleshooting/dependencies.md +119 -0
- package/docs/guides/troubleshooting/hmr.md +144 -0
- package/docs/guides/upgrade/config.md +954 -0
- package/docs/guides/upgrade/entry.md +463 -0
- package/docs/guides/upgrade/other.md +183 -0
- package/docs/guides/upgrade/overview.md +33 -0
- package/docs/guides/upgrade/tailwindcss.md +91 -0
- package/docs/guides/upgrade/web-server.md +109 -0
- package/docs/index.md +33 -0
- package/docs/llms.txt +290 -0
- package/docs/plugin/cli-plugins/api.md +573 -0
- package/docs/plugin/cli-plugins/life-cycle.md +2 -0
- package/docs/plugin/introduction.md +152 -0
- package/docs/plugin/official/cli-plugins/plugin-bff.md +5 -0
- package/docs/plugin/official/cli-plugins/plugin-ssg.md +5 -0
- package/docs/plugin/official/cli-plugins/plugin-styled-components.md +5 -0
- package/docs/plugin/official/cli-plugins.md +4 -0
- package/docs/plugin/plugin-system.md +238 -0
- package/docs/plugin/runtime-plugins/api.md +194 -0
- package/docs/plugin/runtime-plugins/life-cycle.md +2 -0
- package/docs/plugin/server-plugins/api.md +209 -0
- package/docs/plugin/server-plugins/life-cycle.md +13 -0
- package/docs/tutorials/examples/csr-auth.md +9 -0
- package/docs/tutorials/foundations/introduction.md +16 -0
- package/package.json +63 -22
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# builderPlugins
|
|
2
|
+
|
|
3
|
+
- **Type:** `RsbuildPlugin[]`
|
|
4
|
+
- **Default:** `[]`
|
|
5
|
+
|
|
6
|
+
Used to configure the Rsbuild plugin.
|
|
7
|
+
|
|
8
|
+
Rsbuild is the build tool of Modern.js, please read [Build Engine](/guides/concept/builder.md) for background. If you want to know how to write Rsbuild plugins, you can refer to [Rsbuild - Plugin System](https://v2.rsbuild.rs/plugins/dev/index).
|
|
9
|
+
|
|
10
|
+
## Precautions
|
|
11
|
+
|
|
12
|
+
This option **is used to configure the Rsbuild plugins**. If you need to configure other types of plugins, please select the corresponding configs:
|
|
13
|
+
|
|
14
|
+
- Use [plugins](/configure/app/plugins.md) to configure Modern.js framework plugins.
|
|
15
|
+
- Use [tools.bundlerChain](/configure/app/tools/bundler-chain.md) to configure Rspack plugins.
|
|
16
|
+
|
|
17
|
+
## When to use
|
|
18
|
+
|
|
19
|
+
In most scenarios, we recommend you to use the Modern.js framework plugin, which can be registered through the [plugins](/configure/app/plugins.md) config. Because the API provided by the framework plugin is richer and more capable, while the API provided by the Rsbuild plugin can only be used to build scenes.
|
|
20
|
+
|
|
21
|
+
When you need to reference some existing Rsbuild plugins (and there is no related capability in Modern.js), or reuse Rsbuild plugins between different frameworks, you can use the `builderPlugins` field to register them.
|
|
22
|
+
|
|
23
|
+
## Example
|
|
24
|
+
|
|
25
|
+
Below is an example of using the Rsbuild plugin.
|
|
26
|
+
|
|
27
|
+
### Using plugins on npm
|
|
28
|
+
|
|
29
|
+
To use a plugin on npm, you need to install the plugin through the package manager and import it.
|
|
30
|
+
|
|
31
|
+
```ts title="modern.config.ts"
|
|
32
|
+
import myRsbuildPlugin from 'my-rsbuild-plugin';
|
|
33
|
+
|
|
34
|
+
export default defineConfig({
|
|
35
|
+
builderPlugins: [myRsbuildPlugin()],
|
|
36
|
+
});
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Using local plugins
|
|
40
|
+
|
|
41
|
+
Use the plugin in the local code repository, you can import it directly through the relative path import.
|
|
42
|
+
|
|
43
|
+
```ts title="modern.config.ts"
|
|
44
|
+
import myRsbuildPlugin from './plugin/myRsbuildPlugin';
|
|
45
|
+
|
|
46
|
+
export default defineConfig({
|
|
47
|
+
builderPlugins: [myRsbuildPlugin()],
|
|
48
|
+
});
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Plugin configuration options
|
|
52
|
+
|
|
53
|
+
If the plugin provides some custom configuration options, you can pass in the configuration through the parameters of the plugin function.
|
|
54
|
+
|
|
55
|
+
```ts title="modern.config.ts"
|
|
56
|
+
import myRsbuildPlugin from 'my-rsbuild-plugin';
|
|
57
|
+
|
|
58
|
+
export default defineConfig({
|
|
59
|
+
builderPlugins: [
|
|
60
|
+
myRsbuildPlugin({
|
|
61
|
+
foo: 1,
|
|
62
|
+
bar: 2,
|
|
63
|
+
}),
|
|
64
|
+
],
|
|
65
|
+
});
|
|
66
|
+
```
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# dev.assetPrefix
|
|
2
|
+
|
|
3
|
+
- **Type:** `boolean | string | 'auto'`
|
|
4
|
+
- **Default:** `'/'`
|
|
5
|
+
|
|
6
|
+
This configuration item is used to set the URL prefix of static resources in **development mode**.
|
|
7
|
+
|
|
8
|
+
:::info
|
|
9
|
+
The usage of this configuration item is exactly the same as that of Rsbuild. For detailed information, please refer to [Rsbuild - dev.assetPrefix](https://v2.rsbuild.dev/config/dev/asset-prefix).
|
|
10
|
+
:::
|
|
11
|
+
:::warning
|
|
12
|
+
Please note that this configuration item is only applicable in development mode. In production mode, please use the [output.assetPrefix](/configure/app/output/asset-prefix.md) configuration item for setting.
|
|
13
|
+
:::
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# dev.beforeStartUrl
|
|
2
|
+
|
|
3
|
+
- **Type:** `() => Promise<void> | void`
|
|
4
|
+
- **Default:** `undefined`
|
|
5
|
+
|
|
6
|
+
`dev.beforeStartUrl` is used to execute a callback function before opening the `startUrl`, this config needs to be used together with `dev.startUrl`.
|
|
7
|
+
|
|
8
|
+
```js
|
|
9
|
+
export default {
|
|
10
|
+
dev: {
|
|
11
|
+
startUrl: true,
|
|
12
|
+
beforeStartUrl: async () => {
|
|
13
|
+
await doSomeThing();
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
```
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# dev.client
|
|
2
|
+
|
|
3
|
+
- **Type:**
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
type Client = {
|
|
7
|
+
// The protocol name for the WebSocket request
|
|
8
|
+
protocol?: 'ws' | 'wss';
|
|
9
|
+
// The path for the WebSocket request
|
|
10
|
+
path?: string;
|
|
11
|
+
// The port number for the WebSocket request
|
|
12
|
+
port?: string | number;
|
|
13
|
+
// The host for the WebSocket request
|
|
14
|
+
host?: string;
|
|
15
|
+
// The maximum number of reconnection attempts after a WebSocket request is disconnected.
|
|
16
|
+
reconnect?: number;
|
|
17
|
+
// Whether to display an error overlay in the browser when a compilation error occurs
|
|
18
|
+
overlay?: boolean;
|
|
19
|
+
};
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
- **Default:**
|
|
23
|
+
|
|
24
|
+
```js
|
|
25
|
+
const defaultConfig = {
|
|
26
|
+
path: '/webpack-hmr',
|
|
27
|
+
port: '<port>',
|
|
28
|
+
// By default it is set to "location.hostname"
|
|
29
|
+
host: '',
|
|
30
|
+
// By default it is set to "location.protocol === 'https:' ? 'wss' : 'ws'""
|
|
31
|
+
protocol: undefined,
|
|
32
|
+
reconnect: 100,
|
|
33
|
+
overlay: false,
|
|
34
|
+
};
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Configure the client code injected by Modern.js during the development process. This can be used to set the WebSocket URL for HMR.
|
|
38
|
+
|
|
39
|
+
:::info
|
|
40
|
+
The usage of this configuration item is exactly the same as that of Rsbuild. For detailed information, please refer to [Rsbuild - dev.client](https://v2.rsbuild.dev/config/dev/client).
|
|
41
|
+
:::
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# dev.hmr
|
|
2
|
+
|
|
3
|
+
- **Type:** `boolean`
|
|
4
|
+
- **Default:** `true`
|
|
5
|
+
|
|
6
|
+
Whether to enable Hot Module Replacement.
|
|
7
|
+
|
|
8
|
+
:::info
|
|
9
|
+
The usage of this configuration item is exactly the same as that of Rsbuild. For detailed information, please refer to [Rsbuild - dev.hmr](https://v2.rsbuild.dev/config/dev/hmr).
|
|
10
|
+
:::
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# dev.host
|
|
2
|
+
|
|
3
|
+
- **Type:** `string`
|
|
4
|
+
- **Default:** `0.0.0.0`
|
|
5
|
+
|
|
6
|
+
Specify the host that the dev server listens to.
|
|
7
|
+
|
|
8
|
+
By default, the dev server will listen to `0.0.0.0`, which means listening to all network interfaces, including `localhost` and public network addresses.
|
|
9
|
+
|
|
10
|
+
If you want the dev server to listen only on `localhost`, you can set it to:
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
export default {
|
|
14
|
+
dev: {
|
|
15
|
+
host: 'localhost',
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
```
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# dev.https
|
|
2
|
+
|
|
3
|
+
- **Type:** `boolean | { key: string; cert: string }`
|
|
4
|
+
- **Default:** `false`
|
|
5
|
+
|
|
6
|
+
After configuring this option, you can enable HTTPS Dev Server, and disabling the HTTP Dev Server.
|
|
7
|
+
|
|
8
|
+
HTTP:
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
> Local: http://localhost:8080/
|
|
12
|
+
> Network: http://192.168.0.1:8080/
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
HTTPS:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
> Local: https://localhost:8080/
|
|
19
|
+
> Network: https://192.168.0.1:8080/
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
#### Automatically generate certificates
|
|
23
|
+
|
|
24
|
+
You can directly set `https` to `true`, Modern.js will automatically generate the HTTPS certificate based on [devcert](https://github.com/davewasmer/devcert).
|
|
25
|
+
|
|
26
|
+
When using this method, you need to manually install the [devcert](https://github.com/davewasmer/devcert) dependency in your project:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# npm
|
|
30
|
+
npm install devcert@1.2.2 -D
|
|
31
|
+
|
|
32
|
+
# yarn
|
|
33
|
+
yarn add devcert@1.2.2 -D
|
|
34
|
+
|
|
35
|
+
# pnpm
|
|
36
|
+
pnpm add devcert@1.2.2 -D
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Then configure `dev.https` to `true`:
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
export default {
|
|
43
|
+
dev: {
|
|
44
|
+
https: true,
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
The devcert has some limitations, it does not currently support IP addresses yet.
|
|
50
|
+
|
|
51
|
+
:::tip
|
|
52
|
+
The https proxy automatically installs the certificate and needs root authority, please enter the password according to the prompt.
|
|
53
|
+
**The password is only used to trust the certificate, and will not be leaked or be used elsewhere**.
|
|
54
|
+
:::
|
|
55
|
+
|
|
56
|
+
#### Manually set the certificate
|
|
57
|
+
|
|
58
|
+
You can also manually pass in the certificate and the private key required in the `dev.https` option. This parameter will be directly passed to the createServer method of the https module in Node.js.
|
|
59
|
+
|
|
60
|
+
For details, please refer to [https.createServer](https://nodejs.org/api/https.html#https_https_createserver_options_requestlistener).
|
|
61
|
+
|
|
62
|
+
```ts
|
|
63
|
+
import fs from 'fs';
|
|
64
|
+
|
|
65
|
+
export default {
|
|
66
|
+
dev: {
|
|
67
|
+
https: {
|
|
68
|
+
key: fs.readFileSync('certificates/private.pem'),
|
|
69
|
+
cert: fs.readFileSync('certificates/public.pem'),
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
#### Clean up cert cache
|
|
76
|
+
|
|
77
|
+
The certificate created by devcert is saved in `~/Library/Application\ Support/devcert`. You may do some cleanup if needed.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# dev.lazyCompilation
|
|
2
|
+
|
|
3
|
+
- **Type:**
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
type LazyCompilationOptions =
|
|
7
|
+
| boolean
|
|
8
|
+
| {
|
|
9
|
+
/**
|
|
10
|
+
* Enable lazy compilation for entries.
|
|
11
|
+
*/
|
|
12
|
+
entries?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Enable lazy compilation for dynamic imports.
|
|
15
|
+
*/
|
|
16
|
+
imports?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Specify which imported modules should be lazily compiled.
|
|
19
|
+
*/
|
|
20
|
+
test?: RegExp | ((m: Module) => boolean);
|
|
21
|
+
/**
|
|
22
|
+
* The path to a custom runtime code that overrides the default lazy compilation client.
|
|
23
|
+
*/
|
|
24
|
+
client?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Tells the client the server URL that needs to be requested.
|
|
27
|
+
*/
|
|
28
|
+
serverUrl?: string;
|
|
29
|
+
};
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
- **Default:** `false`
|
|
33
|
+
|
|
34
|
+
Enable lazy compilation (compilation on demand), implemented based on Rspack's [lazy compilation](https://rspack.rs/guide/features/lazy-compilation) feature.
|
|
35
|
+
|
|
36
|
+
:::info
|
|
37
|
+
The usage of this configuration item is exactly the same as that of Rsbuild. For detailed information, please refer to [Rsbuild - dev.lazyCompilation](https://v2.rsbuild.dev/config/dev/lazy-compilation)。
|
|
38
|
+
In Rspack build mode,
|
|
39
|
+
:::
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# dev.liveReload
|
|
2
|
+
|
|
3
|
+
- **Type:** `boolean`
|
|
4
|
+
- **Default:** `true`
|
|
5
|
+
|
|
6
|
+
Whether to reload the page when source files are changed.
|
|
7
|
+
|
|
8
|
+
:::info
|
|
9
|
+
The usage of this configuration item is exactly the same as that of Rsbuild. For detailed information, please refer to [Rsbuild - dev.liveReload](https://v2.rsbuild.dev/config/dev/live-reload).
|
|
10
|
+
:::
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# dev.mockDir
|
|
2
|
+
|
|
3
|
+
- **Type:** `string`
|
|
4
|
+
- **Default:** `'./config/mock'`
|
|
5
|
+
|
|
6
|
+
Sets the directory containing the Mock API entry file. Relative paths are
|
|
7
|
+
resolved from the application directory, and absolute paths are also supported.
|
|
8
|
+
Modern.js loads `index.ts` or `index.js` from this directory during development.
|
|
9
|
+
|
|
10
|
+
For example, move the Mock API entry to `mocks/index.ts`:
|
|
11
|
+
|
|
12
|
+
```js title="modern.config.ts"
|
|
13
|
+
import { defineConfig } from '@modern-js/app-tools';
|
|
14
|
+
|
|
15
|
+
export default defineConfig({
|
|
16
|
+
dev: {
|
|
17
|
+
mockDir: './mocks',
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
This is also useful in a monorepo when multiple applications share one Mock
|
|
23
|
+
directory:
|
|
24
|
+
|
|
25
|
+
```js title="modern.config.ts"
|
|
26
|
+
export default defineConfig({
|
|
27
|
+
dev: {
|
|
28
|
+
mockDir: '../../shared/mocks',
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
```
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# dev.progressBar
|
|
2
|
+
|
|
3
|
+
- **Type:**
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
type ProgressBar =
|
|
7
|
+
| boolean
|
|
8
|
+
| {
|
|
9
|
+
id?: string;
|
|
10
|
+
};
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
- **Default:** true
|
|
14
|
+
|
|
15
|
+
Whether to display progress bar during compilation.
|
|
16
|
+
|
|
17
|
+
:::info
|
|
18
|
+
The usage of this configuration item is exactly the same as that of Rsbuild. For detailed information, please refer to [Rsbuild - dev.progressBar](https://v2.rsbuild.dev/config/dev/progress-bar).
|
|
19
|
+
:::
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# dev.server
|
|
2
|
+
|
|
3
|
+
- **Type:** `Object`
|
|
4
|
+
- **Default:** `{}`
|
|
5
|
+
|
|
6
|
+
The config of DevServer can be modified through `dev.server`.
|
|
7
|
+
|
|
8
|
+
### compress
|
|
9
|
+
|
|
10
|
+
- **Type:** `boolean`
|
|
11
|
+
- **Default:** `true`
|
|
12
|
+
|
|
13
|
+
Whether to enable gzip compression for served static assets.
|
|
14
|
+
|
|
15
|
+
If you want to disable the gzip compression, you can set `compress` to `false`:
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
export default {
|
|
19
|
+
dev: {
|
|
20
|
+
server: {
|
|
21
|
+
compress: false,
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
For more details, please refer to the [Rsbuild - server.compress](https://v2.rsbuild.rs/config/server/compress) documentation.
|
|
28
|
+
|
|
29
|
+
### headers
|
|
30
|
+
|
|
31
|
+
- **Type:** `Record<string, string>`
|
|
32
|
+
- **Default:** `undefined`
|
|
33
|
+
|
|
34
|
+
Adds headers to all responses.
|
|
35
|
+
|
|
36
|
+
```js
|
|
37
|
+
export default {
|
|
38
|
+
dev: {
|
|
39
|
+
server: {
|
|
40
|
+
headers: {
|
|
41
|
+
'X-Custom-Foo': 'bar',
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
For more details, please refer to the [Rsbuild - server.headers](https://v2.rsbuild.rs/config/server/headers) documentation.
|
|
49
|
+
|
|
50
|
+
### historyApiFallback
|
|
51
|
+
|
|
52
|
+
- **Type:** `boolean | ConnectHistoryApiFallbackOptions`
|
|
53
|
+
- **Default:** `false`
|
|
54
|
+
|
|
55
|
+
The index.html page will likely have to be served in place of any 404 responses. Enable `dev.server.historyApiFallback` by setting it to `true`:
|
|
56
|
+
|
|
57
|
+
```js
|
|
58
|
+
export default {
|
|
59
|
+
dev: {
|
|
60
|
+
server: {
|
|
61
|
+
historyApiFallback: true,
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
For more configuration options, please refer to the [Rsbuild - server.historyApiFallback](https://v2.rsbuild.rs/config/server/history-api-fallback) documentation.
|
|
68
|
+
|
|
69
|
+
### watch
|
|
70
|
+
|
|
71
|
+
- **Type:** `boolean`
|
|
72
|
+
- **Default:** `true`
|
|
73
|
+
|
|
74
|
+
Whether to watch files change in directories such as `mock/`, `server/`, `api/`.
|
|
75
|
+
|
|
76
|
+
For more details, please refer to the [Rsbuild - dev.watchFiles](https://v2.rsbuild.rs/config/dev/watch-files) documentation.
|
|
77
|
+
|
|
78
|
+
### cors
|
|
79
|
+
|
|
80
|
+
- **Type:** `boolean | import('cors').CorsOptions`
|
|
81
|
+
|
|
82
|
+
Configure CORS (Cross-Origin Resource Sharing) for the development server.
|
|
83
|
+
|
|
84
|
+
The default configuration for `cors` in Modern.js follows Rsbuild's defaults:
|
|
85
|
+
|
|
86
|
+
```ts
|
|
87
|
+
const defaultAllowedOrigins =
|
|
88
|
+
/^https?:\/\/(?:(?:[^:]+\.)?localhost|127\.0\.0\.1|\[::1\])(?::\d+)?$/;
|
|
89
|
+
|
|
90
|
+
const defaultOptions = {
|
|
91
|
+
// Default allowed:
|
|
92
|
+
// - localhost
|
|
93
|
+
// - 127.0.0.1
|
|
94
|
+
// - [::1]
|
|
95
|
+
origin: defaultAllowedOrigins,
|
|
96
|
+
};
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
For more configuration options and detailed usage, please refer to the [Rsbuild - server.cors](https://v2.rsbuild.rs/config/server/cors) documentation.
|
|
100
|
+
|
|
101
|
+
### proxy
|
|
102
|
+
|
|
103
|
+
- **Type:** `ProxyOptions[] | Record<string, string | ProxyOptions>`
|
|
104
|
+
- **Default:** `undefined`
|
|
105
|
+
|
|
106
|
+
Configure proxy rules for the dev server, and forward requests to the specified service.
|
|
107
|
+
|
|
108
|
+
```js
|
|
109
|
+
export default {
|
|
110
|
+
dev: {
|
|
111
|
+
server: {
|
|
112
|
+
proxy: {
|
|
113
|
+
// http://localhost:8080/api -> https://example.com/api
|
|
114
|
+
// http://localhost:8080/api/foo -> https://example.com/api/foo
|
|
115
|
+
'/api': 'https://example.com',
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
:::tip
|
|
123
|
+
This option is the same as Rsbuild's `server.proxy` option, see [Rsbuild - server.proxy](https://v2.rsbuild.rs/config/server/proxy) for detailed usage.
|
|
124
|
+
:::
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# dev.setupMiddlewares
|
|
2
|
+
|
|
3
|
+
- **Type:**
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
type RequestHandler = (req: any, res: any, next: () => void) => void;
|
|
7
|
+
|
|
8
|
+
type ExposeServerApis = {
|
|
9
|
+
sockWrite: (
|
|
10
|
+
type: string,
|
|
11
|
+
data?: string | boolean | Record<string, any>,
|
|
12
|
+
) => void;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
type SetupMiddlewares = Array<
|
|
16
|
+
(
|
|
17
|
+
middlewares: {
|
|
18
|
+
unshift: (...handlers: RequestHandler[]) => void;
|
|
19
|
+
push: (...handlers: RequestHandler[]) => void;
|
|
20
|
+
},
|
|
21
|
+
server: ExposeServerApis,
|
|
22
|
+
) => void
|
|
23
|
+
>;
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
- **Default:** `undefined`
|
|
27
|
+
|
|
28
|
+
Provides the ability to execute a custom function and apply custom middlewares.
|
|
29
|
+
|
|
30
|
+
:::info
|
|
31
|
+
The usage of this configuration item is exactly the same as that of Rsbuild. For detailed information, please refer to [Rsbuild - dev.setupMiddlewares](https://v2.rsbuild.dev/config/dev/setup-middlewares).
|
|
32
|
+
:::
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# dev.startUrl
|
|
2
|
+
|
|
3
|
+
- **Type:** `boolean | string | string[] | undefined`
|
|
4
|
+
- **Default:** `undefined`
|
|
5
|
+
|
|
6
|
+
`dev.startUrl` is used to set the URL of the page that automatically opens in the browser when Dev Server starts.
|
|
7
|
+
|
|
8
|
+
By default, no page will be opened.
|
|
9
|
+
|
|
10
|
+
You can set it to the following values:
|
|
11
|
+
|
|
12
|
+
```js
|
|
13
|
+
export default {
|
|
14
|
+
dev: {
|
|
15
|
+
// Open the project's default preview page, equivalent to `http://localhost:<port>`
|
|
16
|
+
startUrl: true,
|
|
17
|
+
// Open the specified page
|
|
18
|
+
startUrl: 'http://localhost:8080',
|
|
19
|
+
// Open multiple pages
|
|
20
|
+
startUrl: ['http://localhost:8080', 'http://localhost:8080/about'],
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Port placeholder
|
|
26
|
+
|
|
27
|
+
Since the port number may change, you can use the `<port>` placeholder to refer to the current port number, and Modern.js will automatically replace the placeholder with the actual listening port number.
|
|
28
|
+
|
|
29
|
+
```js
|
|
30
|
+
export default {
|
|
31
|
+
dev: {
|
|
32
|
+
startUrl: 'http://localhost:<port>/home',
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Open the specified browser
|
|
38
|
+
|
|
39
|
+
On MacOS, you can open the specified browser when Dev Server starts, by set environment variable `BROWSER`, support values:
|
|
40
|
+
|
|
41
|
+
- Google Chrome Canary
|
|
42
|
+
- Google Chrome Dev
|
|
43
|
+
- Google Chrome Beta
|
|
44
|
+
- Google Chrome
|
|
45
|
+
- Microsoft Edge
|
|
46
|
+
- Brave Browser
|
|
47
|
+
- Vivaldi
|
|
48
|
+
- Chromium
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# dev.watchFiles
|
|
2
|
+
|
|
3
|
+
- **Type:**
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
type WatchFiles =
|
|
7
|
+
| {
|
|
8
|
+
paths: string | string[];
|
|
9
|
+
type?: 'reload-page';
|
|
10
|
+
// watch options for chokidar
|
|
11
|
+
options?: WatchOptions;
|
|
12
|
+
}
|
|
13
|
+
| {
|
|
14
|
+
paths: string | string[];
|
|
15
|
+
type?: 'reload-server';
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
type WatchFilesConfig = WatchFiles | WatchFiles[];
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
- **Default:** `undefined`
|
|
22
|
+
|
|
23
|
+
Watch specified files and directories for changes. When a file change is detected, it can trigger a page reload or restart the dev server.
|
|
24
|
+
|
|
25
|
+
:::info
|
|
26
|
+
The usage of this configuration item is exactly the same as that of Rsbuild. For detailed information, please refer to [Rsbuild - dev.watchFiles](https://v2.rsbuild.dev/config/dev/watch-files).
|
|
27
|
+
:::
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# dev.writeToDisk
|
|
2
|
+
|
|
3
|
+
- **Type:** `boolean | ((filename: string) => boolean)`
|
|
4
|
+
- **Default:** `(file) => !file.includes('.hot-update.')`
|
|
5
|
+
|
|
6
|
+
Controls whether the build output from development mode is written to disk.
|
|
7
|
+
|
|
8
|
+
:::info
|
|
9
|
+
The usage of this configuration item is exactly the same as that of Rsbuild. For detailed information, please refer to [Rsbuild - dev.writeToDisk](https://v2.rsbuild.dev/config/dev/write-to-disk).
|
|
10
|
+
:::
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# sourceBuild
|
|
2
|
+
|
|
3
|
+
- **Type:** `boolean | PluginSourceBuildOptions`
|
|
4
|
+
- **Default:** `false`
|
|
5
|
+
|
|
6
|
+
Used to enable the ability for source code building. When this configuration option is enabled, Modern.js will read the source code files corresponding to the `source` field in the sub-project's package.json and compile them.
|
|
7
|
+
|
|
8
|
+
```ts
|
|
9
|
+
export default {
|
|
10
|
+
experiments: {
|
|
11
|
+
sourceBuild: true,
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
More detail can see ["Source Code Build Mode"](https://modernjs.dev/en/guides/advanced-features/source-build.html)。
|
|
17
|
+
|
|
18
|
+
### Options
|
|
19
|
+
|
|
20
|
+
`experiments.sourceBuild` is implemented based on [@rsbuild/plugin-source-build](https://github.com/rstackjs/rsbuild-plugin-source-build?tab=readme-ov-file#options). You can pass plugin options like this:
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
export default {
|
|
24
|
+
experiments: {
|
|
25
|
+
sourceBuild: {
|
|
26
|
+
sourceField: 'my-source',
|
|
27
|
+
resolvePriority: 'output',
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
```
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# html.appIcon
|
|
2
|
+
|
|
3
|
+
- **Type:**
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
type AppIconItem = {
|
|
7
|
+
src: string;
|
|
8
|
+
size: number;
|
|
9
|
+
target?: 'apple-touch-icon' | 'web-app-manifest';
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
type AppIcon = {
|
|
13
|
+
name?: string;
|
|
14
|
+
icons: AppIconItem[];
|
|
15
|
+
filename?: string;
|
|
16
|
+
};
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
- **Default:** `undefined`
|
|
20
|
+
|
|
21
|
+
Set the web application icons to display when added to the home screen of a mobile device:
|
|
22
|
+
|
|
23
|
+
- Generate the web app manifest file and its `icons` field.
|
|
24
|
+
- Generate the `apple-touch-icon` and `manifest` tags in the HTML file.
|
|
25
|
+
|
|
26
|
+
:::info
|
|
27
|
+
The usage of this configuration item is exactly the same as that of Rsbuild. For detailed information, please refer to [Rsbuild - html.appIcon](https://v2.rsbuild.dev/config/html/app-icon).
|
|
28
|
+
:::
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# html.crossorigin
|
|
2
|
+
|
|
3
|
+
- **Type:** `boolean | 'anonymous' | 'use-credentials'`
|
|
4
|
+
- **Default:** `false`
|
|
5
|
+
|
|
6
|
+
Set the [crossorigin](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin) attribute of the `<script>` and `<style>` tags.
|
|
7
|
+
|
|
8
|
+
:::info
|
|
9
|
+
The usage of this configuration item is exactly the same as that of Rsbuild. For detailed information, please refer to [Rsbuild - html.crossorigin](https://v2.rsbuild.dev/config/html/crossorigin).
|
|
10
|
+
:::
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# html.favicon
|
|
2
|
+
|
|
3
|
+
- **Type:** `string | Function`
|
|
4
|
+
- **Default:** `undefined`
|
|
5
|
+
|
|
6
|
+
Set the favicon icon path for all pages, can be set as:
|
|
7
|
+
|
|
8
|
+
- a URL.
|
|
9
|
+
- an absolute path to the file.
|
|
10
|
+
- a relative path relative to the project root directory.
|
|
11
|
+
|
|
12
|
+
After config this option, the favicon will be automatically copied to the dist directory during the compilation, and the corresponding `link` tag will be added to the HTML.
|
|
13
|
+
|
|
14
|
+
:::info
|
|
15
|
+
The usage of this configuration item is exactly the same as that of Rsbuild. For detailed information, please refer to [Rsbuild - html.favicon](https://v2.rsbuild.dev/config/html/favicon).
|
|
16
|
+
:::
|