@modern-js/main-doc 2.60.0 → 2.60.1
Sign up to get free protection for your applications and to get access to all the features.
- package/docs/en/apis/app/commands.mdx +0 -16
- package/docs/en/community/contributing-guide.mdx +0 -1
- package/docs/en/components/builder.mdx +3 -0
- package/docs/en/components/bundler.mdx +3 -0
- package/docs/en/components/enableSwc.mdx +17 -0
- package/docs/en/components/esbuild.mdx +3 -0
- package/docs/en/components/micro-frontend.mdx +6 -0
- package/docs/en/components/module-federation.mdx +7 -0
- package/docs/en/components/nodeVersion.mdx +26 -0
- package/docs/en/components/output-asset-prefix-extend.mdx +0 -0
- package/docs/en/components/output-polyfill-extend.mdx +1 -0
- package/docs/en/components/prerequisites.mdx +1 -1
- package/docs/en/components/rsbuild-config-tooltip.mdx +5 -0
- package/docs/en/components/rsbuild.mdx +3 -0
- package/docs/en/components/rspack.mdx +3 -0
- package/docs/en/components/rspackPrecautions.mdx +6 -0
- package/docs/en/components/rspackTip.mdx +7 -0
- package/docs/en/components/swc.mdx +3 -0
- package/docs/en/configure/app/dev/asset-prefix.mdx +12 -2
- package/docs/en/configure/app/dev/before-start-url.mdx +14 -2
- package/docs/en/configure/app/dev/client.mdx +20 -16
- package/docs/en/configure/app/dev/hmr.mdx +8 -2
- package/docs/en/configure/app/dev/host.mdx +15 -2
- package/docs/en/configure/app/dev/https.mdx +71 -2
- package/docs/en/configure/app/dev/live-reload.mdx +3 -15
- package/docs/en/configure/app/dev/port.mdx +18 -2
- package/docs/en/configure/app/dev/progress-bar.mdx +17 -2
- package/docs/en/configure/app/dev/setup-middlewares.mdx +25 -39
- package/docs/en/configure/app/dev/start-url.mdx +46 -2
- package/docs/en/configure/app/dev/watch-files.mdx +5 -39
- package/docs/en/configure/app/dev/write-to-disk.mdx +4 -27
- package/docs/en/configure/app/experiments/lazy-compilation.mdx +84 -2
- package/docs/en/configure/app/experiments/source-build.mdx +28 -3
- package/docs/en/configure/app/html/app-icon.mdx +48 -2
- package/docs/en/configure/app/html/crossorigin.mdx +8 -2
- package/docs/en/configure/app/html/disable-html-folder.mdx +35 -2
- package/docs/en/configure/app/html/favicon-by-entries.mdx +29 -2
- package/docs/en/configure/app/html/favicon.mdx +14 -2
- package/docs/en/configure/app/html/inject-by-entries.mdx +29 -2
- package/docs/en/configure/app/html/inject.mdx +8 -2
- package/docs/en/configure/app/html/meta-by-entries.mdx +41 -2
- package/docs/en/configure/app/html/meta.mdx +22 -2
- package/docs/en/configure/app/html/mount-id.mdx +8 -2
- package/docs/en/configure/app/html/script-loading.mdx +8 -2
- package/docs/en/configure/app/html/tags-by-entries.mdx +37 -2
- package/docs/en/configure/app/html/tags.mdx +13 -2
- package/docs/en/configure/app/html/template-by-entries.mdx +26 -2
- package/docs/en/configure/app/html/template-parameters-by-entries.mdx +28 -2
- package/docs/en/configure/app/html/template-parameters.mdx +31 -2
- package/docs/en/configure/app/html/template.mdx +8 -2
- package/docs/en/configure/app/html/title-by-entries.mdx +30 -2
- package/docs/en/configure/app/html/title.mdx +16 -2
- package/docs/en/configure/app/output/asset-prefix.mdx +12 -2
- package/docs/en/configure/app/output/assets-retry.mdx +72 -2
- package/docs/en/configure/app/output/charset.mdx +8 -2
- package/docs/en/configure/app/output/clean-dist-path.mdx +13 -2
- package/docs/en/configure/app/output/convert-to-rem.mdx +76 -2
- package/docs/en/configure/app/output/copy.mdx +5 -2
- package/docs/en/configure/app/output/css-module-local-ident-name.mdx +14 -2
- package/docs/en/configure/app/output/css-modules.mdx +46 -2
- package/docs/en/configure/app/output/data-uri-limit.mdx +24 -2
- package/docs/en/configure/app/output/disable-css-extract.mdx +9 -2
- package/docs/en/configure/app/output/disable-css-module-extension.mdx +52 -2
- package/docs/en/configure/app/output/disable-filename-hash.mdx +9 -2
- package/docs/en/configure/app/output/disable-inline-runtime-chunk.mdx +38 -2
- package/docs/en/configure/app/output/disable-minimize.mdx +7 -2
- package/docs/en/configure/app/output/disable-source-map.mdx +24 -2
- package/docs/en/configure/app/output/disable-svgr.mdx +13 -2
- package/docs/en/configure/app/output/disable-ts-checker.mdx +46 -2
- package/docs/en/configure/app/output/dist-path.mdx +39 -2
- package/docs/en/configure/app/output/enable-asset-fallback.mdx +29 -2
- package/docs/en/configure/app/output/enable-asset-manifest.mdx +33 -2
- package/docs/en/configure/app/output/enable-css-module-tsdeclaration.mdx +25 -2
- package/docs/en/configure/app/output/enable-inline-scripts.mdx +15 -2
- package/docs/en/configure/app/output/enable-inline-styles.mdx +15 -2
- package/docs/en/configure/app/output/enable-latest-decorators.mdx +7 -2
- package/docs/en/configure/app/output/externals.mdx +18 -2
- package/docs/en/configure/app/output/filename-hash.mdx +3 -27
- package/docs/en/configure/app/output/filename.mdx +47 -2
- package/docs/en/configure/app/output/inject-styles.mdx +15 -0
- package/docs/en/configure/app/output/inline-scripts.mdx +34 -0
- package/docs/en/configure/app/output/inline-styles.mdx +34 -0
- package/docs/en/configure/app/output/legal-comments.mdx +16 -2
- package/docs/en/configure/app/output/minify.mdx +27 -0
- package/docs/en/configure/app/output/override-browserslist.mdx +18 -2
- package/docs/en/configure/app/output/polyfill.mdx +12 -2
- package/docs/en/configure/app/output/source-map.mdx +30 -0
- package/docs/en/configure/app/output/ssg.mdx +20 -17
- package/docs/en/configure/app/output/svg-default-export.mdx +27 -2
- package/docs/en/configure/app/performance/build-cache.mdx +78 -2
- package/docs/en/configure/app/performance/bundle-analyze.mdx +18 -2
- package/docs/en/configure/app/performance/chunk-split.mdx +38 -2
- package/docs/en/configure/app/performance/dns-prefetch.mdx +13 -2
- package/docs/en/configure/app/performance/preconnect.mdx +14 -2
- package/docs/en/configure/app/performance/prefetch.mdx +19 -2
- package/docs/en/configure/app/performance/preload.mdx +21 -2
- package/docs/en/configure/app/performance/print-file-size.mdx +38 -2
- package/docs/en/configure/app/performance/profile.mdx +8 -2
- package/docs/en/configure/app/performance/remove-console.mdx +8 -2
- package/docs/en/configure/app/performance/remove-moment-locale.mdx +8 -2
- package/docs/en/configure/app/performance/transform-lodash.mdx +42 -2
- package/docs/en/configure/app/plugins.mdx +1 -1
- package/docs/en/configure/app/security/check-syntax.mdx +66 -2
- package/docs/en/configure/app/security/nonce.mdx +13 -2
- package/docs/en/configure/app/security/sri.mdx +19 -2
- package/docs/en/configure/app/server/port.mdx +5 -0
- package/docs/en/configure/app/server/ssr.mdx +10 -9
- package/docs/en/configure/app/source/alias-strategy.mdx +8 -2
- package/docs/en/configure/app/source/alias.mdx +17 -2
- package/docs/en/configure/app/source/config-dir.mdx +1 -1
- package/docs/en/configure/app/source/decorators.mdx +8 -21
- package/docs/en/configure/app/source/define.mdx +14 -2
- package/docs/en/configure/app/source/enable-async-entry.mdx +1 -1
- package/docs/en/configure/app/source/entries-dir.mdx +1 -1
- package/docs/en/configure/app/source/exclude.mdx +8 -2
- package/docs/en/configure/app/source/global-vars.mdx +103 -2
- package/docs/en/configure/app/source/include.mdx +19 -2
- package/docs/en/configure/app/source/mainEntryName.mdx +1 -1
- package/docs/en/configure/app/source/module-scopes.mdx +62 -2
- package/docs/en/configure/app/source/pre-entry.mdx +8 -2
- package/docs/en/configure/app/source/resolve-extension-prefix.mdx +48 -2
- package/docs/en/configure/app/source/resolve-main-fields.mdx +39 -2
- package/docs/en/configure/app/source/transform-import.mdx +56 -2
- package/docs/en/configure/app/tools/autoprefixer.mdx +41 -2
- package/docs/en/configure/app/tools/babel.mdx +218 -2
- package/docs/en/configure/app/tools/bundler-chain.mdx +23 -2
- package/docs/en/configure/app/tools/css-extract.mdx +31 -2
- package/docs/en/configure/app/tools/css-loader.mdx +14 -2
- package/docs/en/configure/app/tools/dev-server.mdx +435 -2
- package/docs/en/configure/app/tools/esbuild.mdx +1 -1
- package/docs/en/configure/app/tools/html-plugin.mdx +21 -2
- package/docs/en/configure/app/tools/less.mdx +78 -2
- package/docs/en/configure/app/tools/minify-css.mdx +50 -2
- package/docs/en/configure/app/tools/postcss.mdx +30 -2
- package/docs/en/configure/app/tools/pug.mdx +47 -2
- package/docs/en/configure/app/tools/rspack.mdx +8 -2
- package/docs/en/configure/app/tools/sass.mdx +75 -2
- package/docs/en/configure/app/tools/style-loader.mdx +8 -2
- package/docs/en/configure/app/tools/styled-components.mdx +48 -2
- package/docs/en/configure/app/tools/swc.mdx +33 -2
- package/docs/en/configure/app/tools/terser.mdx +49 -2
- package/docs/en/configure/app/tools/ts-checker.mdx +49 -2
- package/docs/en/configure/app/tools/ts-loader.mdx +63 -2
- package/docs/en/configure/app/tools/webpack-chain.mdx +239 -2
- package/docs/en/configure/app/tools/webpack.mdx +295 -2
- package/docs/en/guides/advanced-features/_meta.json +0 -1
- package/docs/en/guides/advanced-features/rspack-start.mdx +2 -2
- package/docs/en/guides/basic-features/css/css-modules.mdx +2 -2
- package/docs/en/guides/basic-features/output-files.mdx +1 -1
- package/docs/en/guides/basic-features/render/ssg.mdx +1 -1
- package/docs/en/guides/concept/builder.mdx +1 -1
- package/docs/en/guides/get-started/glossary.mdx +7 -7
- package/docs/en/guides/get-started/quick-start.mdx +1 -1
- package/docs/en/guides/topic-detail/_meta.json +0 -6
- package/docs/en/guides/topic-detail/micro-frontend/c01-introduction.mdx +1 -1
- package/docs/en/guides/topic-detail/model/quick-start.mdx +5 -0
- package/docs/en/guides/troubleshooting/builder.mdx +2 -2
- package/docs/en/plugin/cli-plugins/plugin-swc.mdx +4 -4
- package/docs/en/plugin/rsbuild-plugins/plugin-esbuild.mdx +4 -4
- package/docs/zh/apis/app/commands.mdx +0 -18
- package/docs/zh/community/contributing-guide.mdx +0 -1
- package/docs/zh/components/builder.mdx +3 -0
- package/docs/zh/components/bundler.mdx +4 -0
- package/docs/zh/components/enableSwc.mdx +17 -0
- package/docs/zh/components/esbuild.mdx +3 -0
- package/docs/zh/components/micro-frontend.mdx +6 -0
- package/docs/zh/components/module-federation.mdx +7 -0
- package/docs/zh/components/nodeVersion.mdx +28 -0
- package/docs/zh/components/output-asset-prefix-extend.mdx +0 -0
- package/docs/zh/components/output-polyfill-extend.mdx +1 -0
- package/docs/zh/components/prerequisites.mdx +1 -1
- package/docs/zh/components/rsbuild-config-tooltip.mdx +5 -0
- package/docs/zh/components/rsbuild.mdx +3 -0
- package/docs/zh/components/rspack.mdx +3 -0
- package/docs/zh/components/rspackPrecautions.mdx +6 -0
- package/docs/zh/components/rspackTip.mdx +7 -0
- package/docs/zh/components/swc.mdx +3 -0
- package/docs/zh/configure/app/dev/asset-prefix.mdx +12 -2
- package/docs/zh/configure/app/dev/before-start-url.mdx +14 -2
- package/docs/zh/configure/app/dev/client.mdx +20 -16
- package/docs/zh/configure/app/dev/hmr.mdx +8 -2
- package/docs/zh/configure/app/dev/host.mdx +15 -2
- package/docs/zh/configure/app/dev/https.mdx +72 -2
- package/docs/zh/configure/app/dev/live-reload.mdx +3 -15
- package/docs/zh/configure/app/dev/port.mdx +18 -2
- package/docs/zh/configure/app/dev/progress-bar.mdx +17 -2
- package/docs/zh/configure/app/dev/setup-middlewares.mdx +26 -39
- package/docs/zh/configure/app/dev/start-url.mdx +47 -2
- package/docs/zh/configure/app/dev/watch-files.mdx +5 -39
- package/docs/zh/configure/app/dev/write-to-disk.mdx +3 -26
- package/docs/zh/configure/app/experiments/lazy-compilation.mdx +84 -2
- package/docs/zh/configure/app/experiments/source-build.mdx +29 -2
- package/docs/zh/configure/app/html/app-icon.mdx +48 -2
- package/docs/zh/configure/app/html/crossorigin.mdx +9 -2
- package/docs/zh/configure/app/html/disable-html-folder.mdx +34 -2
- package/docs/zh/configure/app/html/favicon-by-entries.mdx +30 -2
- package/docs/zh/configure/app/html/favicon.mdx +15 -2
- package/docs/zh/configure/app/html/inject-by-entries.mdx +30 -2
- package/docs/zh/configure/app/html/inject.mdx +8 -2
- package/docs/zh/configure/app/html/meta-by-entries.mdx +41 -2
- package/docs/zh/configure/app/html/meta.mdx +22 -2
- package/docs/zh/configure/app/html/mount-id.mdx +8 -2
- package/docs/zh/configure/app/html/script-loading.mdx +8 -2
- package/docs/zh/configure/app/html/tags-by-entries.mdx +37 -2
- package/docs/zh/configure/app/html/tags.mdx +13 -2
- package/docs/zh/configure/app/html/template-by-entries.mdx +26 -2
- package/docs/zh/configure/app/html/template-parameters-by-entries.mdx +29 -2
- package/docs/zh/configure/app/html/template-parameters.mdx +31 -2
- package/docs/zh/configure/app/html/template.mdx +8 -2
- package/docs/zh/configure/app/html/title-by-entries.mdx +30 -2
- package/docs/zh/configure/app/html/title.mdx +16 -2
- package/docs/zh/configure/app/output/asset-prefix.mdx +12 -2
- package/docs/zh/configure/app/output/assets-retry.mdx +72 -2
- package/docs/zh/configure/app/output/charset.mdx +8 -2
- package/docs/zh/configure/app/output/clean-dist-path.mdx +13 -2
- package/docs/zh/configure/app/output/convert-to-rem.mdx +77 -2
- package/docs/zh/configure/app/output/copy.mdx +6 -2
- package/docs/zh/configure/app/output/css-module-local-ident-name.mdx +14 -2
- package/docs/zh/configure/app/output/css-modules.mdx +46 -2
- package/docs/zh/configure/app/output/data-uri-limit.mdx +24 -2
- package/docs/zh/configure/app/output/disable-css-extract.mdx +9 -2
- package/docs/zh/configure/app/output/disable-css-module-extension.mdx +52 -2
- package/docs/zh/configure/app/output/disable-filename-hash.mdx +9 -2
- package/docs/zh/configure/app/output/disable-inline-runtime-chunk.mdx +38 -2
- package/docs/zh/configure/app/output/disable-minimize.mdx +7 -2
- package/docs/zh/configure/app/output/disable-source-map.mdx +24 -2
- package/docs/zh/configure/app/output/disable-svgr.mdx +14 -2
- package/docs/zh/configure/app/output/disable-ts-checker.mdx +46 -2
- package/docs/zh/configure/app/output/dist-path.mdx +39 -2
- package/docs/zh/configure/app/output/enable-asset-fallback.mdx +29 -2
- package/docs/zh/configure/app/output/enable-asset-manifest.mdx +33 -2
- package/docs/zh/configure/app/output/enable-css-module-tsdeclaration.mdx +25 -2
- package/docs/zh/configure/app/output/enable-inline-scripts.mdx +15 -2
- package/docs/zh/configure/app/output/enable-inline-styles.mdx +15 -2
- package/docs/zh/configure/app/output/enable-latest-decorators.mdx +7 -2
- package/docs/zh/configure/app/output/externals.mdx +18 -2
- package/docs/zh/configure/app/output/filename-hash.mdx +4 -27
- package/docs/zh/configure/app/output/filename.mdx +47 -2
- package/docs/zh/configure/app/output/inject-styles.mdx +15 -0
- package/docs/zh/configure/app/output/inline-scripts.mdx +34 -0
- package/docs/zh/configure/app/output/inline-styles.mdx +34 -0
- package/docs/zh/configure/app/output/legal-comments.mdx +16 -2
- package/docs/zh/configure/app/output/minify.mdx +27 -0
- package/docs/zh/configure/app/output/override-browserslist.mdx +20 -2
- package/docs/zh/configure/app/output/polyfill.mdx +12 -2
- package/docs/zh/configure/app/output/source-map.mdx +30 -0
- package/docs/zh/configure/app/output/ssg.mdx +19 -15
- package/docs/zh/configure/app/output/svg-default-export.mdx +27 -2
- package/docs/zh/configure/app/performance/build-cache.mdx +77 -2
- package/docs/zh/configure/app/performance/bundle-analyze.mdx +18 -2
- package/docs/zh/configure/app/performance/chunk-split.mdx +38 -2
- package/docs/zh/configure/app/performance/dns-prefetch.mdx +13 -2
- package/docs/zh/configure/app/performance/preconnect.mdx +14 -2
- package/docs/zh/configure/app/performance/prefetch.mdx +19 -2
- package/docs/zh/configure/app/performance/preload.mdx +21 -2
- package/docs/zh/configure/app/performance/print-file-size.mdx +38 -2
- package/docs/zh/configure/app/performance/profile.mdx +8 -2
- package/docs/zh/configure/app/performance/remove-console.mdx +8 -2
- package/docs/zh/configure/app/performance/remove-moment-locale.mdx +8 -2
- package/docs/zh/configure/app/performance/transform-lodash.mdx +42 -2
- package/docs/zh/configure/app/plugins.mdx +1 -1
- package/docs/zh/configure/app/security/check-syntax.mdx +66 -2
- package/docs/zh/configure/app/security/nonce.mdx +13 -2
- package/docs/zh/configure/app/security/sri.mdx +19 -2
- package/docs/zh/configure/app/server/port.mdx +5 -0
- package/docs/zh/configure/app/server/ssr.mdx +10 -9
- package/docs/zh/configure/app/source/alias-strategy.mdx +8 -2
- package/docs/zh/configure/app/source/alias.mdx +17 -2
- package/docs/zh/configure/app/source/config-dir.mdx +1 -1
- package/docs/zh/configure/app/source/decorators.mdx +8 -20
- package/docs/zh/configure/app/source/define.mdx +14 -2
- package/docs/zh/configure/app/source/enable-async-entry.mdx +1 -1
- package/docs/zh/configure/app/source/entries-dir.mdx +1 -1
- package/docs/zh/configure/app/source/exclude.mdx +8 -2
- package/docs/zh/configure/app/source/global-vars.mdx +102 -2
- package/docs/zh/configure/app/source/include.mdx +19 -2
- package/docs/zh/configure/app/source/mainEntryName.mdx +1 -1
- package/docs/zh/configure/app/source/module-scopes.mdx +62 -2
- package/docs/zh/configure/app/source/pre-entry.mdx +8 -2
- package/docs/zh/configure/app/source/resolve-extension-prefix.mdx +50 -2
- package/docs/zh/configure/app/source/resolve-main-fields.mdx +39 -2
- package/docs/zh/configure/app/source/transform-import.mdx +56 -2
- package/docs/zh/configure/app/tools/autoprefixer.mdx +41 -2
- package/docs/zh/configure/app/tools/babel.mdx +218 -2
- package/docs/zh/configure/app/tools/bundler-chain.mdx +26 -2
- package/docs/zh/configure/app/tools/css-extract.mdx +28 -2
- package/docs/zh/configure/app/tools/css-loader.mdx +15 -2
- package/docs/zh/configure/app/tools/dev-server.mdx +435 -2
- package/docs/zh/configure/app/tools/esbuild.mdx +1 -1
- package/docs/zh/configure/app/tools/html-plugin.mdx +21 -2
- package/docs/zh/configure/app/tools/less.mdx +79 -2
- package/docs/zh/configure/app/tools/minify-css.mdx +50 -2
- package/docs/zh/configure/app/tools/postcss.mdx +31 -2
- package/docs/zh/configure/app/tools/pug.mdx +47 -2
- package/docs/zh/configure/app/tools/rspack.mdx +8 -2
- package/docs/zh/configure/app/tools/sass.mdx +73 -2
- package/docs/zh/configure/app/tools/style-loader.mdx +8 -2
- package/docs/zh/configure/app/tools/styled-components.mdx +47 -2
- package/docs/zh/configure/app/tools/swc.mdx +33 -2
- package/docs/zh/configure/app/tools/terser.mdx +49 -2
- package/docs/zh/configure/app/tools/ts-checker.mdx +49 -2
- package/docs/zh/configure/app/tools/ts-loader.mdx +63 -2
- package/docs/zh/configure/app/tools/webpack-chain.mdx +243 -2
- package/docs/zh/configure/app/tools/webpack.mdx +295 -2
- package/docs/zh/guides/advanced-features/_meta.json +0 -1
- package/docs/zh/guides/advanced-features/rspack-start.mdx +2 -2
- package/docs/zh/guides/basic-features/css/css-modules.mdx +1 -1
- package/docs/zh/guides/basic-features/output-files.mdx +2 -2
- package/docs/zh/guides/concept/builder.mdx +1 -1
- package/docs/zh/guides/get-started/glossary.mdx +7 -7
- package/docs/zh/guides/get-started/quick-start.mdx +1 -1
- package/docs/zh/guides/topic-detail/_meta.json +0 -6
- package/docs/zh/guides/topic-detail/micro-frontend/c01-introduction.mdx +1 -1
- package/docs/zh/guides/topic-detail/model/quick-start.mdx +5 -0
- package/docs/zh/guides/troubleshooting/builder.mdx +2 -2
- package/docs/zh/plugin/cli-plugins/plugin-swc.mdx +4 -4
- package/docs/zh/plugin/rsbuild-plugins/plugin-esbuild.mdx +6 -6
- package/package.json +6 -11
- package/src/components/RsbuildLink/index.tsx +19 -0
- /package/docs/en/configure/app/output/{splitRouteChunks.mdx → split-route-chunks.mdx} +0 -0
- /package/docs/zh/configure/app/output/{splitRouteChunks.mdx → split-route-chunks.mdx} +0 -0
@@ -4,6 +4,439 @@ title: devServer
|
|
4
4
|
|
5
5
|
# tools.devServer
|
6
6
|
|
7
|
-
|
7
|
+
- **Type:** `Object`
|
8
|
+
- **Default:** `{}`
|
8
9
|
|
9
|
-
|
10
|
+
The config of DevServer can be modified through `tools.devServer`.
|
11
|
+
|
12
|
+
:::tip
|
13
|
+
Modern.js does not directly use [webpack-dev-server](https://webpack.js.org/api/webpack-dev-server/) or [@rspack/dev-server](https://www.rspack.dev/guide/dev-server.html), but implement DevServer based on [webpack-dev-middleware](https://github.com/webpack/webpack-dev-middleware).
|
14
|
+
:::
|
15
|
+
|
16
|
+
### Options
|
17
|
+
|
18
|
+
#### after
|
19
|
+
|
20
|
+
:::warning
|
21
|
+
**Deprecated**: This configuration is deprecated, please use [dev.setupMiddlewares](https://modernjs.dev/en/configure/app/dev/setup-middlewares) instead.
|
22
|
+
:::
|
23
|
+
|
24
|
+
- **Type:** `Array`
|
25
|
+
- **Default:** `[]`
|
26
|
+
|
27
|
+
Provides the ability to execute custom middleware after all other middleware internally within the server.
|
28
|
+
|
29
|
+
```js
|
30
|
+
export default {
|
31
|
+
tools: {
|
32
|
+
devServer: {
|
33
|
+
after: [
|
34
|
+
async (req, res, next) => {
|
35
|
+
console.log('after dev middleware');
|
36
|
+
next();
|
37
|
+
},
|
38
|
+
],
|
39
|
+
},
|
40
|
+
},
|
41
|
+
};
|
42
|
+
```
|
43
|
+
|
44
|
+
`webpack-dev-server` uses Express as the server-side framework. Modern.js does not use any framework, and the `req` and `res` in the above middleware are all native Node objects. Therefore, the Express middleware used in `webpack-dev-server` may not be directly usable in Modern.js.
|
45
|
+
|
46
|
+
If you want to migrate the Express middleware used in `webpack-dev-server`, you can use the following method to pass the Express app as middleware:
|
47
|
+
|
48
|
+
```js
|
49
|
+
import expressMiddleware from 'my-express-middleware';
|
50
|
+
import express from 'express';
|
51
|
+
|
52
|
+
// init Express app
|
53
|
+
const app = express();
|
54
|
+
app.use(expressMiddleware);
|
55
|
+
|
56
|
+
export default {
|
57
|
+
tools: {
|
58
|
+
devServer: {
|
59
|
+
after: [app],
|
60
|
+
},
|
61
|
+
},
|
62
|
+
};
|
63
|
+
```
|
64
|
+
|
65
|
+
#### before
|
66
|
+
|
67
|
+
:::warning
|
68
|
+
**Deprecated**: This configuration is deprecated, please use [dev.setupMiddlewares](https://modernjs.dev/en/configure/app/dev/setup-middlewares) instead.
|
69
|
+
:::
|
70
|
+
|
71
|
+
- **Type:** `Array`
|
72
|
+
- **Default:** `[]`
|
73
|
+
|
74
|
+
Provides the ability to execute custom middleware prior to all other middleware internally within the server.
|
75
|
+
|
76
|
+
```js
|
77
|
+
export default {
|
78
|
+
tools: {
|
79
|
+
devServer: {
|
80
|
+
before: [
|
81
|
+
async (req, res, next) => {
|
82
|
+
console.log('before dev middleware');
|
83
|
+
next();
|
84
|
+
},
|
85
|
+
],
|
86
|
+
},
|
87
|
+
},
|
88
|
+
};
|
89
|
+
```
|
90
|
+
|
91
|
+
#### client
|
92
|
+
|
93
|
+
:::warning
|
94
|
+
**Deprecated**: This configuration is deprecated, please use [dev.client](https://modernjs.dev/en/configure/app/dev/client) instead.
|
95
|
+
:::
|
96
|
+
|
97
|
+
- **Type:**
|
98
|
+
|
99
|
+
```ts
|
100
|
+
{
|
101
|
+
/** Specify a protocol to use */
|
102
|
+
protocol?: string;
|
103
|
+
/** The path which the middleware is serving the event stream on */
|
104
|
+
path?: string;
|
105
|
+
/** Specify a port number to listen for requests on */
|
106
|
+
port?: string;
|
107
|
+
/** Specify a host to use */
|
108
|
+
host?: string;
|
109
|
+
}
|
110
|
+
```
|
111
|
+
|
112
|
+
- **Default:**
|
113
|
+
|
114
|
+
```js
|
115
|
+
const defaultConfig = {
|
116
|
+
path: '/webpack-hmr',
|
117
|
+
// By default it is set to the port number of the dev server
|
118
|
+
port: '',
|
119
|
+
// By default it is set to "location.hostname"
|
120
|
+
host: '',
|
121
|
+
// By default it is set to "location.protocol === 'https:' ? 'wss' : 'ws'""
|
122
|
+
protocol: '',
|
123
|
+
};
|
124
|
+
```
|
125
|
+
|
126
|
+
The config of HMR client, which are usually used to set the WebSocket URL of HMR.
|
127
|
+
|
128
|
+
#### compress
|
129
|
+
|
130
|
+
- **Type:** `boolean`
|
131
|
+
- **Default:** `true`
|
132
|
+
|
133
|
+
Whether to enable gzip compression for served static assets.
|
134
|
+
|
135
|
+
If you want to disable the gzip compression, you can set `compress` to `false`:
|
136
|
+
|
137
|
+
```ts
|
138
|
+
export default {
|
139
|
+
tools: {
|
140
|
+
devServer: {
|
141
|
+
compress: false,
|
142
|
+
},
|
143
|
+
},
|
144
|
+
};
|
145
|
+
```
|
146
|
+
|
147
|
+
#### devMiddleware
|
148
|
+
|
149
|
+
:::warning
|
150
|
+
**Deprecated**: This configuration is deprecated, please use [dev.writeToDisk](https://modernjs.dev/en/configure/app/dev/write-to-disk) instead.
|
151
|
+
:::
|
152
|
+
|
153
|
+
- **Type:**
|
154
|
+
|
155
|
+
```js
|
156
|
+
{
|
157
|
+
writeToDisk: boolean | ((filename: string) => boolean);
|
158
|
+
}
|
159
|
+
```
|
160
|
+
|
161
|
+
- **Default:**
|
162
|
+
|
163
|
+
```js
|
164
|
+
{
|
165
|
+
writeToDisk: (file: string) => !file.includes('.hot-update.'),
|
166
|
+
}
|
167
|
+
```
|
168
|
+
|
169
|
+
The config of devMiddleware. Current options is the subset of [webpack-dev-middleware](https://github.com/webpack/webpack-dev-middleware).
|
170
|
+
|
171
|
+
#### headers
|
172
|
+
|
173
|
+
- **Type:** `Record<string, string>`
|
174
|
+
- **Default:** `undefined`
|
175
|
+
|
176
|
+
Adds headers to all responses.
|
177
|
+
|
178
|
+
```js
|
179
|
+
export default {
|
180
|
+
tools: {
|
181
|
+
devServer: {
|
182
|
+
headers: {
|
183
|
+
'X-Custom-Foo': 'bar',
|
184
|
+
},
|
185
|
+
},
|
186
|
+
},
|
187
|
+
};
|
188
|
+
```
|
189
|
+
|
190
|
+
#### historyApiFallback
|
191
|
+
|
192
|
+
- **Type:** `boolean | ConnectHistoryApiFallbackOptions`
|
193
|
+
- **Default:** `false`
|
194
|
+
|
195
|
+
The index.html page will likely have to be served in place of any 404 responses. Enable `devServer.historyApiFallback` by setting it to `true`:
|
196
|
+
|
197
|
+
```js
|
198
|
+
export default {
|
199
|
+
tools: {
|
200
|
+
devServer: {
|
201
|
+
historyApiFallback: true,
|
202
|
+
},
|
203
|
+
},
|
204
|
+
};
|
205
|
+
```
|
206
|
+
|
207
|
+
For more options and information, see the [connect-history-api-fallback](https://github.com/bripkens/connect-history-api-fallback) documentation.
|
208
|
+
|
209
|
+
#### hot
|
210
|
+
|
211
|
+
:::warning
|
212
|
+
**Deprecated**: This configuration is deprecated, please use [dev.hmr](https://modernjs.dev/en/configure/app/dev/hmr) instead.
|
213
|
+
:::
|
214
|
+
|
215
|
+
- **Type:** `boolean`
|
216
|
+
- **Default:** `true`
|
217
|
+
|
218
|
+
Enable [Hot Module Replacement](https://webpack.js.org/concepts/hot-module-replacement/) feature.
|
219
|
+
|
220
|
+
#### https
|
221
|
+
|
222
|
+
:::warning
|
223
|
+
**Deprecated**: This configuration is deprecated, please use [dev.https](https://modernjs.dev/en/configure/app/dev/https) instead.
|
224
|
+
:::
|
225
|
+
|
226
|
+
- **Type:** `boolean | { key: string; cert: string }`
|
227
|
+
- **Default:** `false`
|
228
|
+
|
229
|
+
By default, DevServer will be served over HTTP. It can optionally be served over HTTPS by setting `devServer.https` to `true`, and will disable the HTTP server.
|
230
|
+
|
231
|
+
You can also manually pass in the certificate and corresponding private key required by the HTTPS server:
|
232
|
+
|
233
|
+
```ts
|
234
|
+
export default {
|
235
|
+
tools: {
|
236
|
+
devServer: {
|
237
|
+
https: {
|
238
|
+
key: fs.readFileSync('certificates/private.pem'),
|
239
|
+
cert: fs.readFileSync('certificates/public.pem'),
|
240
|
+
},
|
241
|
+
},
|
242
|
+
},
|
243
|
+
};
|
244
|
+
```
|
245
|
+
|
246
|
+
#### liveReload
|
247
|
+
|
248
|
+
:::warning
|
249
|
+
**Deprecated**: This configuration is deprecated, please use [dev.liveReload](https://modernjs.dev/en/configure/app/dev/live-reload) instead.
|
250
|
+
:::
|
251
|
+
|
252
|
+
- **Type:** `boolean`
|
253
|
+
- **Default:** `true`
|
254
|
+
|
255
|
+
By default, the DevServer will reload/refresh the page when file changes are detected (`devServer.hot` option must be disabled in order for liveReload to take effect). Disable `devServer.liveReload` by setting it to `false`.
|
256
|
+
|
257
|
+
#### setupMiddlewares
|
258
|
+
|
259
|
+
:::warning
|
260
|
+
**Deprecated**: This configuration is deprecated, please use [dev.setupMiddlewares](https://modernjs.dev/en/configure/app/dev/setup-middlewares) instead.
|
261
|
+
:::
|
262
|
+
|
263
|
+
- **Type:**
|
264
|
+
|
265
|
+
```js
|
266
|
+
Array<
|
267
|
+
(
|
268
|
+
middlewares: {
|
269
|
+
unshift: (...handlers: RequestHandler[]) => void;
|
270
|
+
push: (...handlers: RequestHandler[]) => void;
|
271
|
+
},
|
272
|
+
server: {
|
273
|
+
sockWrite: (
|
274
|
+
type: string,
|
275
|
+
data?: string | boolean | Record<string, any>,
|
276
|
+
) => void;
|
277
|
+
},
|
278
|
+
) => void
|
279
|
+
>;
|
280
|
+
```
|
281
|
+
|
282
|
+
- **Default:** `undefined`
|
283
|
+
|
284
|
+
Provides the ability to execute a custom function and apply custom middlewares.
|
285
|
+
|
286
|
+
The order among several different types of middleware is: `devServer.before` => `unshift` => internal middlewares => `push` => `devServer.after`.
|
287
|
+
|
288
|
+
```js
|
289
|
+
export default {
|
290
|
+
tools: {
|
291
|
+
devServer: {
|
292
|
+
setupMiddlewares: [
|
293
|
+
(middlewares, server) => {
|
294
|
+
middlewares.unshift((req, res, next) => {
|
295
|
+
next();
|
296
|
+
});
|
297
|
+
|
298
|
+
middlewares.push((req, res, next) => {
|
299
|
+
next();
|
300
|
+
});
|
301
|
+
},
|
302
|
+
],
|
303
|
+
},
|
304
|
+
},
|
305
|
+
};
|
306
|
+
```
|
307
|
+
|
308
|
+
It is possible to use some server api to meet special scenario requirements:
|
309
|
+
|
310
|
+
- sockWrite. Allow send some message to hmr client, and then the hmr client will take different actions depending on the message type. If you send a "content changed" message, the page will reload.
|
311
|
+
|
312
|
+
```js
|
313
|
+
export default {
|
314
|
+
tools: {
|
315
|
+
devServer: {
|
316
|
+
setupMiddlewares: [
|
317
|
+
(middlewares, server) => {
|
318
|
+
// add custom watch & trigger page reload when change
|
319
|
+
watcher.on('change', changed => {
|
320
|
+
server.sockWrite('content-changed');
|
321
|
+
});
|
322
|
+
},
|
323
|
+
],
|
324
|
+
},
|
325
|
+
},
|
326
|
+
};
|
327
|
+
```
|
328
|
+
|
329
|
+
#### proxy
|
330
|
+
|
331
|
+
- **Type:** `Record<string, string> | Record<string, ProxyDetail>`
|
332
|
+
- **Default:** `undefined`
|
333
|
+
|
334
|
+
Proxying some URLs.
|
335
|
+
|
336
|
+
```js
|
337
|
+
export default {
|
338
|
+
tools: {
|
339
|
+
devServer: {
|
340
|
+
proxy: {
|
341
|
+
'/api': 'http://localhost:3000',
|
342
|
+
},
|
343
|
+
},
|
344
|
+
},
|
345
|
+
};
|
346
|
+
```
|
347
|
+
|
348
|
+
A request to /api/users will now proxy the request to http://localhost:3000/api/users.
|
349
|
+
|
350
|
+
If you don't want /api to be passed along, we need to rewrite the path:
|
351
|
+
|
352
|
+
```js
|
353
|
+
export default {
|
354
|
+
tools: {
|
355
|
+
devServer: {
|
356
|
+
proxy: {
|
357
|
+
'/api': {
|
358
|
+
target: 'http://localhost:3000',
|
359
|
+
pathRewrite: { '^/api': '' },
|
360
|
+
},
|
361
|
+
},
|
362
|
+
},
|
363
|
+
},
|
364
|
+
};
|
365
|
+
```
|
366
|
+
|
367
|
+
The DevServer Proxy makes use of the [http-proxy-middleware](https://github.com/chimurai/http-proxy-middleware/tree/2.x) package. Check out its documentation for more advanced usages.
|
368
|
+
|
369
|
+
The full type definition of DevServer Proxy is:
|
370
|
+
|
371
|
+
```ts
|
372
|
+
import type { Options as HttpProxyOptions } from 'http-proxy-middleware';
|
373
|
+
|
374
|
+
type Filter = string | string[] | ((pathname: string, req: Request) => boolean);
|
375
|
+
|
376
|
+
type ProxyDetail = HttpProxyOptions & {
|
377
|
+
bypass?: (
|
378
|
+
req: IncomingMessage,
|
379
|
+
res: ServerResponse,
|
380
|
+
proxyOptions: ProxyOptions,
|
381
|
+
) => string | undefined | null | false;
|
382
|
+
context?: Filter;
|
383
|
+
};
|
384
|
+
|
385
|
+
type ProxyOptions =
|
386
|
+
| Record<string, string>
|
387
|
+
| Record<string, ProxyDetail>
|
388
|
+
| ProxyDetail[]
|
389
|
+
| ProxyDetail;
|
390
|
+
```
|
391
|
+
|
392
|
+
In addition to the http-proxy-middleware option, we also support the bypass and context configuration:
|
393
|
+
|
394
|
+
- bypass: bypass the proxy based on the return value of a function.
|
395
|
+
- Return `null` or `undefined` to continue processing the request with proxy.
|
396
|
+
- Return `false` to produce a 404 error for the request.
|
397
|
+
- Return a path to serve from, instead of continuing to proxy the request.
|
398
|
+
- context: If you want to proxy multiple, specific paths to the same target, you can use an array of one or more objects with a context property.
|
399
|
+
|
400
|
+
```js
|
401
|
+
// custom bypass
|
402
|
+
export default {
|
403
|
+
tools: {
|
404
|
+
devServer: {
|
405
|
+
proxy: {
|
406
|
+
'/api': {
|
407
|
+
target: 'http://localhost:3000',
|
408
|
+
bypass: function (req, res, proxyOptions) {
|
409
|
+
if (req.headers.accept.indexOf('html') !== -1) {
|
410
|
+
console.log('Skipping proxy for browser request.');
|
411
|
+
return '/index.html';
|
412
|
+
}
|
413
|
+
},
|
414
|
+
},
|
415
|
+
},
|
416
|
+
},
|
417
|
+
},
|
418
|
+
};
|
419
|
+
```
|
420
|
+
|
421
|
+
```js
|
422
|
+
// proxy multiple
|
423
|
+
export default {
|
424
|
+
tools: {
|
425
|
+
devServer: {
|
426
|
+
proxy: [
|
427
|
+
{
|
428
|
+
context: ['/auth', '/api'],
|
429
|
+
target: 'http://localhost:3000',
|
430
|
+
},
|
431
|
+
],
|
432
|
+
},
|
433
|
+
},
|
434
|
+
};
|
435
|
+
```
|
436
|
+
|
437
|
+
#### watch
|
438
|
+
|
439
|
+
- **Type:** `boolean`
|
440
|
+
- **Default:** `true`
|
441
|
+
|
442
|
+
Whether to watch files change in directories such as `mock/`, `server/`, `api/`.
|
@@ -1,9 +1,28 @@
|
|
1
1
|
---
|
2
2
|
title: htmlPlugin
|
3
|
+
configName: tools.htmlPlugin
|
3
4
|
---
|
4
5
|
|
5
6
|
# tools.htmlPlugin
|
6
7
|
|
7
|
-
|
8
|
+
- **Type:** `boolean | Object | Function`
|
9
|
+
- **Default:**
|
8
10
|
|
9
|
-
|
11
|
+
```js
|
12
|
+
const defaultOptions = {
|
13
|
+
meta, // 对应 `html.meta` 配置
|
14
|
+
title, // 对应 `html.title` 配置
|
15
|
+
inject, // 对应 `html.inject` 配置
|
16
|
+
favicon, // 对应 `html.favicon` 配置
|
17
|
+
template, // 对应 `html.template` 配置
|
18
|
+
filename, // 基于 `output.distPath` 和 `entryName` 生成
|
19
|
+
templateParameters, // 对应 `html.templateParameters` 配置
|
20
|
+
chunks: [entryName],
|
21
|
+
};
|
22
|
+
```
|
23
|
+
|
24
|
+
The configs of [html-rspack-plugin](https://github.com/rspack-contrib/html-rspack-plugin) or [html-webpack-plugin](https://github.com/jantimon/html-webpack-plugin) can be modified through `tools.htmlPlugin`.
|
25
|
+
|
26
|
+
import RsbuildConig from '@site-docs-en/components/rsbuild-config-tooltip';
|
27
|
+
|
28
|
+
<RsbuildConig />
|
@@ -4,6 +4,82 @@ title: less
|
|
4
4
|
|
5
5
|
# tools.less
|
6
6
|
|
7
|
-
|
7
|
+
- **Type:** `Object | Function`
|
8
|
+
- **Default:**
|
8
9
|
|
9
|
-
|
10
|
+
```js
|
11
|
+
const defaultOptions = {
|
12
|
+
lessOptions: {
|
13
|
+
javascriptEnabled: true,
|
14
|
+
},
|
15
|
+
// CSS Source Map enabled by default in development environment
|
16
|
+
sourceMap: isDev,
|
17
|
+
};
|
18
|
+
```
|
19
|
+
|
20
|
+
You can modify the config of [less-loader](https://github.com/webpack-contrib/less-loader) via `tools.less`.
|
21
|
+
|
22
|
+
### Object Type
|
23
|
+
|
24
|
+
When `tools.less` is configured as `Object` type, it is merged with the default config through Object.assign in a shallow way. It should be noted that `lessOptions` is merged through deepMerge in a deep way. For example:
|
25
|
+
|
26
|
+
```js
|
27
|
+
export default {
|
28
|
+
tools: {
|
29
|
+
less: {
|
30
|
+
lessOptions: {
|
31
|
+
javascriptEnabled: false,
|
32
|
+
},
|
33
|
+
},
|
34
|
+
},
|
35
|
+
};
|
36
|
+
```
|
37
|
+
|
38
|
+
### Function Type
|
39
|
+
|
40
|
+
When `tools.less` is a Function, the default config is passed as the first parameter, which can be directly modified or returned as the final result. The second parameter provides some utility functions that can be called directly. For example:
|
41
|
+
|
42
|
+
```js
|
43
|
+
export default {
|
44
|
+
tools: {
|
45
|
+
less(config) {
|
46
|
+
// Modify the config of lessOptions
|
47
|
+
config.lessOptions = {
|
48
|
+
javascriptEnabled: false,
|
49
|
+
};
|
50
|
+
},
|
51
|
+
},
|
52
|
+
};
|
53
|
+
```
|
54
|
+
|
55
|
+
### Modifying Less Version
|
56
|
+
|
57
|
+
In some scenarios, if you need to use a specific version of Less instead of the built-in Less v4 in Modern.js, you can install the desired Less version in your project and set it up using the `implementation` option of the `less-loader`.
|
58
|
+
|
59
|
+
```js
|
60
|
+
export default {
|
61
|
+
tools: {
|
62
|
+
less: {
|
63
|
+
implementation: require('less'),
|
64
|
+
},
|
65
|
+
},
|
66
|
+
};
|
67
|
+
```
|
68
|
+
|
69
|
+
### Util Function
|
70
|
+
|
71
|
+
#### addExcludes
|
72
|
+
|
73
|
+
- **Type:** `(excludes: RegExp | RegExp[]) => void`
|
74
|
+
|
75
|
+
Used to specify which files `less-loader` does not compile, You can pass in one or more regular expressions to match the path of less files, for example:
|
76
|
+
|
77
|
+
```js
|
78
|
+
export default {
|
79
|
+
tools: {
|
80
|
+
less(config, { addExcludes }) {
|
81
|
+
addExcludes(/node_modules/);
|
82
|
+
},
|
83
|
+
},
|
84
|
+
};
|
85
|
+
```
|
@@ -4,6 +4,54 @@ title: minifyCss
|
|
4
4
|
|
5
5
|
# tools.minifyCss
|
6
6
|
|
7
|
-
|
7
|
+
- **Type:** `Object | Function | undefined`
|
8
|
+
- **Default:**
|
8
9
|
|
9
|
-
|
10
|
+
```js
|
11
|
+
const defaultOptions = {
|
12
|
+
minimizerOptions: {
|
13
|
+
preset: [
|
14
|
+
'default',
|
15
|
+
{
|
16
|
+
mergeLonghand: false,
|
17
|
+
},
|
18
|
+
],
|
19
|
+
},
|
20
|
+
};
|
21
|
+
```
|
22
|
+
|
23
|
+
When building for production, Modern.js will minimize the CSS code through [css-minimizer-webpack-plugin](https://github.com/webpack-contrib/css-minimizer-webpack-plugin). The config of [css-minimizer-webpack-plugin](https://github.com/webpack-contrib/css-minimizer-webpack-plugin) can be modified via `tools.minifyCss`.
|
24
|
+
|
25
|
+
### Object Type
|
26
|
+
|
27
|
+
When `tools.minifyCss` is `Object` type, it will be merged with the default config via `Object.assign`.
|
28
|
+
|
29
|
+
For example, modify the `preset` config of [cssnano](https://cssnano.co/):
|
30
|
+
|
31
|
+
```js
|
32
|
+
export default {
|
33
|
+
tools: {
|
34
|
+
minifyCss: {
|
35
|
+
minimizerOptions: {
|
36
|
+
preset: require.resolve('cssnano-preset-simple'),
|
37
|
+
},
|
38
|
+
},
|
39
|
+
},
|
40
|
+
};
|
41
|
+
```
|
42
|
+
|
43
|
+
### Function Type
|
44
|
+
|
45
|
+
When `tools.minifyCss` is `Function` type, the default config is passed in as the first parameter, the config object can be modified directly, or a value can be returned as the final result.
|
46
|
+
|
47
|
+
```js
|
48
|
+
export default {
|
49
|
+
tools: {
|
50
|
+
minifyCss: options => {
|
51
|
+
options.minimizerOptions = {
|
52
|
+
preset: require.resolve('cssnano-preset-simple'),
|
53
|
+
},
|
54
|
+
}
|
55
|
+
}
|
56
|
+
};
|
57
|
+
```
|
@@ -1,9 +1,37 @@
|
|
1
1
|
---
|
2
2
|
title: postcss
|
3
|
+
configName: tools.postcss
|
3
4
|
---
|
4
5
|
|
5
6
|
# tools.postcss
|
6
7
|
|
7
|
-
|
8
|
+
- **Type:** `Object | Function`
|
9
|
+
- **Default:**
|
8
10
|
|
9
|
-
|
11
|
+
```js
|
12
|
+
const defaultOptions = {
|
13
|
+
postcssOptions: {
|
14
|
+
plugins: [
|
15
|
+
// 以下插件默认启用
|
16
|
+
require('postcss-nesting'),
|
17
|
+
require('postcss-media-minmax'),
|
18
|
+
require('postcss-flexbugs-fixes'),
|
19
|
+
require('autoprefixer')({
|
20
|
+
flexbox: 'no-2009',
|
21
|
+
}),
|
22
|
+
// 以下插件仅在需要兼容低版本浏览器时启用
|
23
|
+
require('postcss-custom-properties'),
|
24
|
+
require('postcss-initial'),
|
25
|
+
require('postcss-page-break'),
|
26
|
+
require('postcss-font-variant'),
|
27
|
+
],
|
28
|
+
// 默认在开发环境下启用 CSS 的 Source Map
|
29
|
+
sourceMap: isDev,
|
30
|
+
},
|
31
|
+
};
|
32
|
+
```
|
33
|
+
Modern.js integrates PostCSS by default, you can configure [postcss-loader](https://github.com/webpack-contrib/postcss-loader) through `tools.postcss`.
|
34
|
+
|
35
|
+
import RsbuildConig from '@site-docs-en/components/rsbuild-config-tooltip';
|
36
|
+
|
37
|
+
<RsbuildConig />
|
@@ -4,6 +4,51 @@ title: pug
|
|
4
4
|
|
5
5
|
# tools.pug
|
6
6
|
|
7
|
-
|
7
|
+
- **Type:** `true | Object | Function | undefined`
|
8
|
+
- **Default:** `false`
|
8
9
|
|
9
|
-
|
10
|
+
Configure the [Pug](https://pugjs.org/) template engine.
|
11
|
+
|
12
|
+
### Boolean Type
|
13
|
+
|
14
|
+
Pug template engine is not enabled by default, you can enable it by setting `tools.pug` to `true`.
|
15
|
+
|
16
|
+
```ts
|
17
|
+
export default {
|
18
|
+
tools: {
|
19
|
+
pug: true,
|
20
|
+
},
|
21
|
+
};
|
22
|
+
```
|
23
|
+
|
24
|
+
When enabled, you can use `index.pug` as the template file in `html.template` config.
|
25
|
+
|
26
|
+
### Object Type
|
27
|
+
|
28
|
+
When `tools.terser` is `Object` type, you can passing the Pug options:
|
29
|
+
|
30
|
+
```ts
|
31
|
+
export default {
|
32
|
+
tools: {
|
33
|
+
pug: {
|
34
|
+
doctype: 'xml',
|
35
|
+
},
|
36
|
+
},
|
37
|
+
};
|
38
|
+
```
|
39
|
+
|
40
|
+
For detailed options, please refer to [Pug API Reference](https://pugjs.org/api/reference.html#options).
|
41
|
+
|
42
|
+
### Function Type
|
43
|
+
|
44
|
+
When `tools.pug` is `Function` type, the default configuration is passed in as the first parameter, the configuration object can be modified directly, or a value can be returned as the final result.
|
45
|
+
|
46
|
+
```ts
|
47
|
+
export default {
|
48
|
+
tools: {
|
49
|
+
pug(config) {
|
50
|
+
config.doctype = 'xml';
|
51
|
+
},
|
52
|
+
},
|
53
|
+
};
|
54
|
+
```
|