@modern-js/main-doc 2.59.0 → 2.60.1-alpha.0
Sign up to get free protection for your applications and to get access to all the features.
- package/docs/en/_meta.json +10 -5
- package/docs/en/apis/app/hooks/api/lambda.mdx +4 -48
- package/docs/en/apis/app/hooks/api/middleware.mdx +11 -0
- package/docs/en/community/blog/v2-release-note.mdx +1 -1
- 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/enable-bff.mdx +19 -2
- package/docs/en/components/enableSwc.mdx +17 -0
- package/docs/en/components/esbuild.mdx +3 -0
- package/docs/en/components/extend-bff-function.mdx +5 -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/other-plugins.mdx +0 -0
- package/docs/en/components/output-asset-prefix-extend.mdx +0 -0
- package/docs/en/components/output-polyfill-extend.mdx +0 -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/auto-load-plugin.mdx +4 -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 +3 -3
- 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 +2 -2
- 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 +34 -3
- 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/_meta.json +0 -5
- package/docs/en/guides/advanced-features/_meta.json +7 -5
- package/docs/en/guides/advanced-features/bff/_meta.json +1 -1
- package/docs/en/guides/advanced-features/bff/extend-server.mdx +154 -0
- package/docs/en/guides/advanced-features/bff/frameworks.mdx +52 -123
- package/docs/en/guides/advanced-features/bff/function.mdx +108 -80
- package/docs/en/guides/advanced-features/bff/sdk.mdx +40 -51
- package/docs/en/guides/advanced-features/build-performance.mdx +6 -21
- package/docs/en/guides/advanced-features/page-performance/_meta.json +1 -0
- 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/basic-features/render/streaming-ssr.mdx +1 -1
- package/docs/en/guides/basic-features/routes.mdx +2 -3
- package/docs/en/guides/basic-features/static-assets.mdx +1 -1
- package/docs/en/guides/concept/builder.mdx +1 -1
- package/docs/en/guides/deprecated.md +2 -0
- 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/troubleshooting/builder.mdx +2 -2
- package/docs/en/plugin/_meta.json +19 -0
- package/docs/en/plugin/cli-plugins/_meta.json +1 -0
- package/docs/en/plugin/cli-plugins/plugin-bff.mdx +5 -0
- package/docs/en/plugin/cli-plugins/plugin-ssg.mdx +5 -0
- package/docs/en/{guides/rsbuild-plugins → plugin/cli-plugins}/plugin-swc.mdx +11 -4
- package/docs/en/plugin/cli-plugins/plugin-tailwind.mdx +5 -0
- package/docs/en/plugin/cli-plugins.mdx +6 -0
- package/docs/en/{guides/advanced-features/rsbuild-plugin.mdx → plugin/introduction.mdx} +34 -9
- package/docs/en/{guides/topic-detail/framework-plugin → plugin/plugin-system}/extend.mdx +1 -1
- package/docs/en/{guides/topic-detail/framework-plugin → plugin/plugin-system}/implement.mdx +3 -3
- package/docs/en/{guides/topic-detail/framework-plugin → plugin/plugin-system}/plugin-api.mdx +2 -2
- package/docs/en/plugin/rsbuild-plugins/_meta.json +1 -0
- package/docs/en/{guides → plugin}/rsbuild-plugins/plugin-esbuild.mdx +4 -4
- package/docs/en/plugin/rsbuild-plugins.mdx +3 -0
- package/docs/zh/_meta.json +10 -5
- package/docs/zh/apis/app/hooks/api/lambda.mdx +5 -48
- package/docs/zh/apis/app/hooks/api/middleware.mdx +11 -0
- package/docs/zh/community/blog/v2-release-note.mdx +1 -1
- 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/enable-bff.mdx +19 -2
- package/docs/zh/components/enableSwc.mdx +17 -0
- package/docs/zh/components/esbuild.mdx +3 -0
- package/docs/zh/components/extend-bff-function.mdx +5 -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/other-plugins.mdx +0 -0
- package/docs/zh/components/output-asset-prefix-extend.mdx +0 -0
- package/docs/zh/components/output-polyfill-extend.mdx +0 -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/auto-load-plugin.mdx +4 -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 +3 -3
- 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 +2 -2
- 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 +34 -3
- 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/_meta.json +0 -5
- package/docs/zh/guides/advanced-features/_meta.json +7 -5
- package/docs/zh/guides/advanced-features/bff/_meta.json +1 -1
- package/docs/zh/guides/advanced-features/bff/extend-server.mdx +156 -0
- package/docs/zh/guides/advanced-features/bff/frameworks.mdx +51 -117
- package/docs/zh/guides/advanced-features/bff/function.mdx +69 -59
- package/docs/zh/guides/advanced-features/bff/sdk.mdx +27 -36
- package/docs/zh/guides/advanced-features/build-performance.mdx +6 -21
- package/docs/zh/guides/advanced-features/page-performance/_meta.json +1 -0
- package/docs/zh/guides/advanced-features/rspack-start.mdx +4 -4
- package/docs/zh/guides/basic-features/alias.mdx +5 -11
- package/docs/zh/guides/basic-features/css/css-modules.mdx +1 -1
- package/docs/zh/guides/basic-features/env-vars.mdx +1 -1
- package/docs/zh/guides/basic-features/output-files.mdx +2 -2
- package/docs/zh/guides/basic-features/routes.mdx +1 -2
- package/docs/zh/guides/basic-features/static-assets.mdx +1 -1
- package/docs/zh/guides/concept/builder.mdx +1 -1
- package/docs/zh/guides/deprecated.md +4 -0
- 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/troubleshooting/builder.mdx +2 -2
- package/docs/zh/plugin/_meta.json +19 -0
- package/docs/zh/plugin/cli-plugins/_meta.json +1 -0
- package/docs/zh/plugin/cli-plugins/plugin-bff.mdx +5 -0
- package/docs/zh/plugin/cli-plugins/plugin-ssg.mdx +5 -0
- package/docs/zh/{guides/rsbuild-plugins → plugin/cli-plugins}/plugin-swc.mdx +11 -4
- package/docs/zh/plugin/cli-plugins/plugin-tailwind.mdx +5 -0
- package/docs/zh/plugin/cli-plugins.mdx +6 -0
- package/docs/zh/{guides/advanced-features/rsbuild-plugin.mdx → plugin/introduction.mdx} +36 -11
- package/docs/zh/{guides/topic-detail/framework-plugin → plugin/plugin-system}/extend.mdx +1 -1
- package/docs/zh/{guides/topic-detail/framework-plugin → plugin/plugin-system}/implement.mdx +3 -3
- package/docs/zh/{guides/topic-detail/framework-plugin → plugin/plugin-system}/plugin-api.mdx +2 -2
- package/docs/zh/plugin/rsbuild-plugins/_meta.json +1 -0
- package/docs/zh/{guides → plugin}/rsbuild-plugins/plugin-esbuild.mdx +6 -6
- package/docs/zh/plugin/rsbuild-plugins.mdx +4 -0
- package/i18n.json +27 -3
- package/package.json +8 -13
- package/rspress.config.ts +1 -58
- package/src/components/Footer/index.tsx +1 -1
- package/src/components/RsbuildLink/index.tsx +19 -0
- package/src/pages/index.tsx +0 -1
- package/docs/en/apis/app/hooks/api/api.mdx +0 -80
- package/docs/en/apis/app/hooks/api/app.mdx +0 -12
- package/docs/en/guides/advanced-features/bff/type.mdx +0 -46
- package/docs/en/guides/advanced-features/eslint.mdx +0 -148
- package/docs/zh/apis/app/hooks/api/api.mdx +0 -81
- package/docs/zh/apis/app/hooks/api/app.mdx +0 -12
- package/docs/zh/guides/advanced-features/bff/type.mdx +0 -46
- package/docs/zh/guides/advanced-features/eslint.mdx +0 -152
- /package/docs/en/configure/app/output/{splitRouteChunks.mdx → split-route-chunks.mdx} +0 -0
- /package/docs/en/guides/advanced-features/{bff/index.mdx → bff.mdx} +0 -0
- /package/docs/en/guides/advanced-features/{code-split.mdx → page-performance/code-split.mdx} +0 -0
- /package/docs/en/guides/advanced-features/{inline-assets.mdx → page-performance/inline-assets.mdx} +0 -0
- /package/docs/en/guides/advanced-features/{optimize-bundle.mdx → page-performance/optimize-bundle.mdx} +0 -0
- /package/docs/en/{guides/topic-detail/framework-plugin → plugin/plugin-system}/_meta.json +0 -0
- /package/docs/en/{guides/topic-detail/framework-plugin → plugin/plugin-system}/hook-list.mdx +0 -0
- /package/docs/en/{guides/topic-detail/framework-plugin → plugin/plugin-system}/hook.mdx +0 -0
- /package/docs/en/{guides/topic-detail/framework-plugin → plugin/plugin-system}/introduction.mdx +0 -0
- /package/docs/en/{guides/topic-detail/framework-plugin → plugin/plugin-system}/lifecycle.mdx +0 -0
- /package/docs/en/{guides/topic-detail/framework-plugin → plugin/plugin-system}/relationship.mdx +0 -0
- /package/docs/zh/configure/app/output/{splitRouteChunks.mdx → split-route-chunks.mdx} +0 -0
- /package/docs/zh/guides/advanced-features/{bff/index.mdx → bff.mdx} +0 -0
- /package/docs/zh/guides/advanced-features/{code-split.mdx → page-performance/code-split.mdx} +0 -0
- /package/docs/zh/guides/advanced-features/{inline-assets.mdx → page-performance/inline-assets.mdx} +0 -0
- /package/docs/zh/guides/advanced-features/{optimize-bundle.mdx → page-performance/optimize-bundle.mdx} +0 -0
- /package/docs/zh/{guides/topic-detail/framework-plugin → plugin/plugin-system}/_meta.json +0 -0
- /package/docs/zh/{guides/topic-detail/framework-plugin → plugin/plugin-system}/hook-list.mdx +0 -0
- /package/docs/zh/{guides/topic-detail/framework-plugin → plugin/plugin-system}/hook.mdx +0 -0
- /package/docs/zh/{guides/topic-detail/framework-plugin → plugin/plugin-system}/introduction.mdx +0 -0
- /package/docs/zh/{guides/topic-detail/framework-plugin → plugin/plugin-system}/lifecycle.mdx +0 -0
- /package/docs/zh/{guides/topic-detail/framework-plugin → plugin/plugin-system}/relationship.mdx +0 -0
@@ -4,6 +4,243 @@ title: webpackChain
|
|
4
4
|
|
5
5
|
# tools.webpackChain
|
6
6
|
|
7
|
-
|
7
|
+
- **Type:** `Function | undefined`
|
8
|
+
- **Default:** `undefined`
|
9
|
+
- **Bundler:** `only support webpack`
|
8
10
|
|
9
|
-
|
11
|
+
You can modify the webpack configuration by configuring `tools.webpackChain` which is type of `Function`. The function receives two parameters, the first is the original webpack chain object, and the second is an object containing some utils.
|
12
|
+
|
13
|
+
Compared with `tools.webpack`, **webpack-chain not only supports chained calls, but also can locate built-in Rule or Plugin based on aliases, so as to achieve precise config modification**. We recommend using `tools.webpackChain` instead of `tools.webpack`.
|
14
|
+
|
15
|
+
> `tools.webpackChain` is executed earlier than tools.webpack and thus will be overridden by changes in `tools.webpack`.
|
16
|
+
|
17
|
+
### Utils
|
18
|
+
|
19
|
+
#### env
|
20
|
+
|
21
|
+
- **Type:** `'development' | 'production' | 'test'`
|
22
|
+
|
23
|
+
The `env` parameter can be used to determine whether the current environment is development, production or test. For example:
|
24
|
+
|
25
|
+
```js
|
26
|
+
export default {
|
27
|
+
tools: {
|
28
|
+
webpackChain: (chain, { env }) => {
|
29
|
+
if (env === 'development') {
|
30
|
+
chain.devtool('cheap-module-eval-source-map');
|
31
|
+
}
|
32
|
+
},
|
33
|
+
},
|
34
|
+
};
|
35
|
+
```
|
36
|
+
|
37
|
+
#### isProd
|
38
|
+
|
39
|
+
- **Type:** `boolean`
|
40
|
+
|
41
|
+
The `isProd` parameter can be used to determine whether the current environment is production. For example:
|
42
|
+
|
43
|
+
```js
|
44
|
+
export default {
|
45
|
+
tools: {
|
46
|
+
webpackChain: (chain, { isProd }) => {
|
47
|
+
if (isProd) {
|
48
|
+
chain.devtool('source-map');
|
49
|
+
}
|
50
|
+
},
|
51
|
+
},
|
52
|
+
};
|
53
|
+
```
|
54
|
+
|
55
|
+
#### target
|
56
|
+
|
57
|
+
- **Type:** `'web' | 'node' | 'modern-web' | 'web-worker'`
|
58
|
+
|
59
|
+
The `target` parameter can be used to determine the current environment. For example:
|
60
|
+
|
61
|
+
```js
|
62
|
+
export default {
|
63
|
+
tools: {
|
64
|
+
webpackChain: (chain, { target }) => {
|
65
|
+
if (target === 'node') {
|
66
|
+
// ...
|
67
|
+
}
|
68
|
+
},
|
69
|
+
},
|
70
|
+
};
|
71
|
+
```
|
72
|
+
|
73
|
+
#### isServer
|
74
|
+
|
75
|
+
- **Type:** `boolean`
|
76
|
+
|
77
|
+
Determines whether the target environment is `node`, equivalent to `target === 'node'`.
|
78
|
+
|
79
|
+
```js
|
80
|
+
export default {
|
81
|
+
tools: {
|
82
|
+
webpackChain: (chain, { isServer }) => {
|
83
|
+
if (isServer) {
|
84
|
+
// ...
|
85
|
+
}
|
86
|
+
},
|
87
|
+
},
|
88
|
+
};
|
89
|
+
```
|
90
|
+
|
91
|
+
#### isWebWorker
|
92
|
+
|
93
|
+
- **Type:** `boolean`
|
94
|
+
|
95
|
+
Determines whether the target environment is `web-worker`, equivalent to `target === 'web-worker'`.
|
96
|
+
|
97
|
+
```js
|
98
|
+
export default {
|
99
|
+
tools: {
|
100
|
+
webpackChain: (chain, { isWebWorker }) => {
|
101
|
+
if (isWebWorker) {
|
102
|
+
// ...
|
103
|
+
}
|
104
|
+
},
|
105
|
+
},
|
106
|
+
};
|
107
|
+
```
|
108
|
+
|
109
|
+
#### webpack
|
110
|
+
|
111
|
+
- **Type:** `typeof import('webpack')`
|
112
|
+
|
113
|
+
The webpack instance. For example:
|
114
|
+
|
115
|
+
```js
|
116
|
+
export default {
|
117
|
+
tools: {
|
118
|
+
webpackChain: (chain, { webpack }) => {
|
119
|
+
chain.plugin('my-progress').use(webpack.ProgressPlugin);
|
120
|
+
},
|
121
|
+
},
|
122
|
+
};
|
123
|
+
```
|
124
|
+
|
125
|
+
#### HtmlWebpackPlugin
|
126
|
+
|
127
|
+
- **Type:** `typeof import('html-webpack-plugin')`
|
128
|
+
|
129
|
+
The HtmlWebpackPlugin instance:
|
130
|
+
|
131
|
+
```js
|
132
|
+
export default {
|
133
|
+
tools: {
|
134
|
+
webpackChain: (chain, { HtmlWebpackPlugin }) => {
|
135
|
+
console.log(HtmlWebpackPlugin);
|
136
|
+
},
|
137
|
+
},
|
138
|
+
};
|
139
|
+
```
|
140
|
+
|
141
|
+
#### CHAIN_ID
|
142
|
+
|
143
|
+
Some common Chain IDs are predefined in the Modern.js, and you can use these IDs to locate the built-in Rule or Plugin.
|
144
|
+
|
145
|
+
:::tip
|
146
|
+
Please note that some of the rules or plugins listed below are not available by default. They will only be included in the webpack configuration when you enable specific options or register certain plugins.
|
147
|
+
|
148
|
+
For example, the `RULE.STYLUS` rule exists only when the Stylus plugin is registered.
|
149
|
+
:::
|
150
|
+
|
151
|
+
#### CHAIN_ID.RULE
|
152
|
+
|
153
|
+
| ID | Description |
|
154
|
+
| ------------- | ------------------------------------------------------------------------------------------- |
|
155
|
+
| `RULE.JS` | Rule for `js` |
|
156
|
+
| `RULE.TS` | Rule for `ts` |
|
157
|
+
| `RULE.CSS` | Rule for `css` |
|
158
|
+
| `RULE.LESS` | Rule for `less` |
|
159
|
+
| `RULE.SASS` | Rule for `sass` |
|
160
|
+
| `RULE.STYLUS` | Rule for `stylus`(requires [Stylus plugin](https://rsbuild.dev/plugins/list/plugin-stylus)) |
|
161
|
+
| `RULE.SVG` | Rule for `svg` |
|
162
|
+
| `RULE.PUG` | Rule for `pug` |
|
163
|
+
| `RULE.TOML` | Rule for `toml` |
|
164
|
+
| `RULE.YAML` | Rule for `yaml` |
|
165
|
+
| `RULE.WASM` | Rule for `WASM` |
|
166
|
+
| `RULE.NODE` | Rule for `node` |
|
167
|
+
| `RULE.FONT` | Rule for `font` |
|
168
|
+
| `RULE.IMAGE` | Rule for `image` |
|
169
|
+
| `RULE.MEDIA` | Rule for `media` |
|
170
|
+
|
171
|
+
#### CHAIN_ID.ONE_OF
|
172
|
+
|
173
|
+
`ONE_OF.XXX` can match a certain type of rule in the rule array.
|
174
|
+
|
175
|
+
| ID | Description |
|
176
|
+
| ------------------- | ------------------------------------------------------------------ |
|
177
|
+
| `ONE_OF.SVG` | Rules for SVG, automatic choice between data URI and separate file |
|
178
|
+
| `ONE_OF.SVG_URL` | Rules for SVG, output as a separate file |
|
179
|
+
| `ONE_OF.SVG_INLINE` | Rules for SVG, inlined into bundles as data URIs |
|
180
|
+
| `ONE_OF.SVG_ASSETS` | Rules for SVG, automatic choice between data URI and separate file |
|
181
|
+
|
182
|
+
#### CHAIN_ID.USE
|
183
|
+
|
184
|
+
`USE.XXX` can match a certain loader.
|
185
|
+
|
186
|
+
| ID | Description |
|
187
|
+
| --------------------------------- | ---------------------------------------------- |
|
188
|
+
| `USE.TS` | correspond to `ts-loader` |
|
189
|
+
| `USE.CSS` | correspond to `css-loader` |
|
190
|
+
| `USE.LESS` | correspond to `less-loader` |
|
191
|
+
| `USE.SASS` | correspond to `sass-loader` |
|
192
|
+
| `USE.STYLUS` | correspond to `stylus-loader` |
|
193
|
+
| `USE.PUG` | correspond to `pug-loader` |
|
194
|
+
| `USE.VUE` | correspond to `vue-loader` |
|
195
|
+
| `USE.TOML` | correspond to `toml-loader` |
|
196
|
+
| `USE.YAML` | correspond to `yaml-loader` |
|
197
|
+
| `USE.NODE` | correspond to `node-loader` |
|
198
|
+
| `USE.URL` | correspond to `url-loader` |
|
199
|
+
| `USE.SVGR` | correspond to `@svgr/webpack` |
|
200
|
+
| `USE.BABEL` | correspond to `babel-loader` |
|
201
|
+
| `USE.STYLE` | correspond to `style-loader` |
|
202
|
+
| `USE.POSTCSS` | correspond to `postcss-loader` |
|
203
|
+
| `USE.CSS_MODULES_TS` | correspond to `css-modules-typescript-loader` |
|
204
|
+
| `USE.MINI_CSS_EXTRACT` | correspond to `mini-css-extract-plugin.loader` |
|
205
|
+
| `USE.RESOLVE_URL_LOADER_FOR_SASS` | correspond to `resolve-url-loader` |
|
206
|
+
|
207
|
+
#### CHAIN_ID.PLUGIN
|
208
|
+
|
209
|
+
`PLUGIN.XXX` can match a certain webpack plugin.
|
210
|
+
|
211
|
+
| ID | Description |
|
212
|
+
| ------------------------------ | -------------------------------------------------------------------------------------------------------------- |
|
213
|
+
| `PLUGIN.HMR` | correspond to `HotModuleReplacementPlugin` |
|
214
|
+
| `PLUGIN.COPY` | correspond to `CopyWebpackPlugin` |
|
215
|
+
| `PLUGIN.HTML` | correspond to `HtmlWebpackPlugin`, you need to splice the entry name when using: `${PLUGIN.HTML}-${entryName}` |
|
216
|
+
| `PLUGIN.DEFINE` | correspond to `DefinePlugin` |
|
217
|
+
| `PLUGIN.IGNORE` | correspond to `IgnorePlugin` |
|
218
|
+
| `PLUGIN.BANNER` | correspond to `BannerPlugin` |
|
219
|
+
| `PLUGIN.PROGRESS` | correspond to `Webpackbar` |
|
220
|
+
| `PLUGIN.APP_ICON` | correspond to `AppIconPlugin` |
|
221
|
+
| `PLUGIN.MANIFEST` | correspond to `WebpackManifestPlugin` |
|
222
|
+
| `PLUGIN.TS_CHECKER` | correspond to `ForkTsCheckerWebpackPlugin` |
|
223
|
+
| `PLUGIN.INLINE_HTML` | correspond to `InlineChunkHtmlPlugin` |
|
224
|
+
| `PLUGIN.BUNDLE_ANALYZER` | correspond to `WebpackBundleAnalyzer` |
|
225
|
+
| `PLUGIN.MINI_CSS_EXTRACT` | correspond to `MiniCssExtractPlugin` |
|
226
|
+
| `PLUGIN.VUE_LOADER_PLUGIN` | correspond to `VueLoaderPlugin` |
|
227
|
+
| `PLUGIN.REACT_FAST_REFRESH` | correspond to `ReactFastRefreshPlugin` |
|
228
|
+
| `PLUGIN.NODE_POLYFILL_PROVIDE` | correspond to `ProvidePlugin` for node polyfills |
|
229
|
+
| `PLUGIN.SUBRESOURCE_INTEGRITY` | correspond to `webpack-subresource-integrity` |
|
230
|
+
| `PLUGIN.ASSETS_RETRY` | correspond to webpack static asset retry plugin |
|
231
|
+
| `PLUGIN.AUTO_SET_ROOT_SIZE` | correspond to automatically set root font size plugin |
|
232
|
+
|
233
|
+
#### CHAIN_ID.MINIMIZER
|
234
|
+
|
235
|
+
`MINIMIZER.XXX` can match a certain minimizer.
|
236
|
+
|
237
|
+
| ID | Description |
|
238
|
+
| ------------------- | ----------------------------------------- |
|
239
|
+
| `MINIMIZER.JS` | correspond to `TerserWebpackPlugin` |
|
240
|
+
| `MINIMIZER.CSS` | correspond to `CssMinimizerWebpackPlugin` |
|
241
|
+
| `MINIMIZER.ESBUILD` | correspond to `ESBuildPlugin` |
|
242
|
+
| `MINIMIZER.SWC` | correspond to `SwcWebpackPlugin` |
|
243
|
+
|
244
|
+
### Examples
|
245
|
+
|
246
|
+
For usage examples, please refer to: [WebpackChain usage examples](https://modernjs.dev/builder/en/guide/advanced/custom-webpack-config.html#webpack-chain-basics).
|
@@ -4,6 +4,299 @@ title: webpack
|
|
4
4
|
|
5
5
|
# tools.webpack
|
6
6
|
|
7
|
-
|
7
|
+
- **Type:** `Object | Function | undefined`
|
8
|
+
- **Default:** `undefined`
|
9
|
+
- **Bundler:** `only support webpack`
|
8
10
|
|
9
|
-
|
11
|
+
`tools.webpack` is used to configure [webpack](https://webpack.js.org/).
|
12
|
+
|
13
|
+
> `tools.bundlerChain` is also used to modify the webpack configuration, and the function is more powerful. It is recommended to use `tools.bundlerChain` first.
|
14
|
+
|
15
|
+
### Object Type
|
16
|
+
|
17
|
+
`tools.webpack` can be configured as an object to be deep merged with the built-in webpack configuration through [webpack-merge](https://github.com/survivejs/webpack-merge).
|
18
|
+
|
19
|
+
For example, add `resolve.alias` configuration:
|
20
|
+
|
21
|
+
```js
|
22
|
+
export default {
|
23
|
+
tools: {
|
24
|
+
webpack: {
|
25
|
+
resolve: {
|
26
|
+
alias: {
|
27
|
+
'@util': 'src/util',
|
28
|
+
},
|
29
|
+
},
|
30
|
+
},
|
31
|
+
},
|
32
|
+
};
|
33
|
+
```
|
34
|
+
|
35
|
+
### Function Type
|
36
|
+
|
37
|
+
`tools.webpack` can be configured as a function. The first parameter of this function is the built-in webpack configuration object, you can modify this object, and then return it. For example:
|
38
|
+
|
39
|
+
```js
|
40
|
+
export default {
|
41
|
+
tools: {
|
42
|
+
webpack: config => {
|
43
|
+
config.resolve.alias['@util'] = 'src/util';
|
44
|
+
return config;
|
45
|
+
},
|
46
|
+
},
|
47
|
+
};
|
48
|
+
```
|
49
|
+
|
50
|
+
:::tip
|
51
|
+
The object returned by the `tools.webpack` function is used directly as the final webpack configuration and is not merged with the built-in webpack configuration.
|
52
|
+
:::
|
53
|
+
|
54
|
+
### Utils
|
55
|
+
|
56
|
+
The second parameter of this function is an object, which contains some utility functions and properties, as follows:
|
57
|
+
|
58
|
+
#### env
|
59
|
+
|
60
|
+
- **Type:** `'development' | 'production' | 'test'`
|
61
|
+
|
62
|
+
The `env` parameter can be used to determine whether the current environment is development, production or test. For example:
|
63
|
+
|
64
|
+
```js
|
65
|
+
export default {
|
66
|
+
tools: {
|
67
|
+
webpack: (config, { env }) => {
|
68
|
+
if (env === 'development') {
|
69
|
+
config.devtool = 'cheap-module-eval-source-map';
|
70
|
+
}
|
71
|
+
return config;
|
72
|
+
},
|
73
|
+
},
|
74
|
+
};
|
75
|
+
```
|
76
|
+
|
77
|
+
#### isProd
|
78
|
+
|
79
|
+
- **Type:** `boolean`
|
80
|
+
|
81
|
+
The `isProd` parameter can be used to determine whether the current environment is production. For example:
|
82
|
+
|
83
|
+
```js
|
84
|
+
export default {
|
85
|
+
tools: {
|
86
|
+
webpack: (config, { isProd }) => {
|
87
|
+
if (isProd) {
|
88
|
+
config.devtool = 'source-map';
|
89
|
+
}
|
90
|
+
return config;
|
91
|
+
},
|
92
|
+
},
|
93
|
+
};
|
94
|
+
```
|
95
|
+
|
96
|
+
#### target
|
97
|
+
|
98
|
+
- **Type:** `'web' | 'node' | 'modern-web' | 'web-worker'`
|
99
|
+
|
100
|
+
The `target` parameter can be used to determine the current target. For example:
|
101
|
+
|
102
|
+
```js
|
103
|
+
export default {
|
104
|
+
tools: {
|
105
|
+
webpack: (config, { target }) => {
|
106
|
+
if (target === 'node') {
|
107
|
+
// ...
|
108
|
+
}
|
109
|
+
return config;
|
110
|
+
},
|
111
|
+
},
|
112
|
+
};
|
113
|
+
```
|
114
|
+
|
115
|
+
#### isServer
|
116
|
+
|
117
|
+
- **Type:** `boolean`
|
118
|
+
|
119
|
+
Determines whether the target environment is `node`, equivalent to `target === 'node'`.
|
120
|
+
|
121
|
+
```js
|
122
|
+
export default {
|
123
|
+
tools: {
|
124
|
+
webpack: (config, { isServer }) => {
|
125
|
+
if (isServer) {
|
126
|
+
// ...
|
127
|
+
}
|
128
|
+
return config;
|
129
|
+
},
|
130
|
+
},
|
131
|
+
};
|
132
|
+
```
|
133
|
+
|
134
|
+
#### isWebWorker
|
135
|
+
|
136
|
+
- **Type:** `boolean`
|
137
|
+
|
138
|
+
Determines whether the target environment is `web-worker`, equivalent to `target === 'web-worker'`.
|
139
|
+
|
140
|
+
```js
|
141
|
+
export default {
|
142
|
+
tools: {
|
143
|
+
webpack: (config, { isWebWorker }) => {
|
144
|
+
if (isWebWorker) {
|
145
|
+
// ...
|
146
|
+
}
|
147
|
+
return config;
|
148
|
+
},
|
149
|
+
},
|
150
|
+
};
|
151
|
+
```
|
152
|
+
|
153
|
+
#### webpack
|
154
|
+
|
155
|
+
- **Type:** `typeof import('webpack')`
|
156
|
+
|
157
|
+
The webpack instance. For example:
|
158
|
+
|
159
|
+
```js
|
160
|
+
export default {
|
161
|
+
tools: {
|
162
|
+
webpack: (config, { webpack }) => {
|
163
|
+
config.plugins.push(new webpack.ProgressPlugin());
|
164
|
+
return config;
|
165
|
+
},
|
166
|
+
},
|
167
|
+
};
|
168
|
+
```
|
169
|
+
|
170
|
+
#### HtmlWebpackPlugin
|
171
|
+
|
172
|
+
- **Type:** `typeof import('html-webpack-plugin')`
|
173
|
+
|
174
|
+
The HtmlWebpackPlugin instance:
|
175
|
+
|
176
|
+
```js
|
177
|
+
export default {
|
178
|
+
tools: {
|
179
|
+
webpack: (chain, { HtmlWebpackPlugin }) => {
|
180
|
+
console.log(HtmlWebpackPlugin);
|
181
|
+
},
|
182
|
+
},
|
183
|
+
};
|
184
|
+
```
|
185
|
+
|
186
|
+
#### addRules
|
187
|
+
|
188
|
+
- **Type:** `(rules: RuleSetRule | RuleSetRule[]) => void`
|
189
|
+
|
190
|
+
Add additional [webpack rules](https://webpack.js.org/configuration/module/#modulerules).
|
191
|
+
|
192
|
+
For example:
|
193
|
+
|
194
|
+
```ts
|
195
|
+
export default {
|
196
|
+
tools: {
|
197
|
+
webpack: (config, { addRules }) => {
|
198
|
+
// add a single rule
|
199
|
+
addRules({
|
200
|
+
test: /\.foo/,
|
201
|
+
loader: require.resolve('foo-loader'),
|
202
|
+
});
|
203
|
+
|
204
|
+
// Add multiple rules as an array
|
205
|
+
addRules([
|
206
|
+
{
|
207
|
+
test: /\.foo/,
|
208
|
+
loader: require.resolve('foo-loader'),
|
209
|
+
},
|
210
|
+
{
|
211
|
+
test: /\.bar/,
|
212
|
+
loader: require.resolve('bar-loader'),
|
213
|
+
},
|
214
|
+
]);
|
215
|
+
},
|
216
|
+
},
|
217
|
+
};
|
218
|
+
```
|
219
|
+
|
220
|
+
#### prependPlugins
|
221
|
+
|
222
|
+
- **Type:** `(plugins: WebpackPluginInstance | WebpackPluginInstance[]) => void`
|
223
|
+
|
224
|
+
Add additional plugins to the head of the internal webpack plugins array, and the plugin will be executed first.
|
225
|
+
|
226
|
+
```ts
|
227
|
+
export default {
|
228
|
+
tools: {
|
229
|
+
webpack: (config, { prependPlugins, webpack }) => {
|
230
|
+
// add a single plugin
|
231
|
+
prependPlugins(
|
232
|
+
new webpack.BannerPlugin({
|
233
|
+
banner: 'hello world!',
|
234
|
+
}),
|
235
|
+
);
|
236
|
+
|
237
|
+
// Add multiple plugins
|
238
|
+
prependPlugins([new PluginA(), new PluginB()]);
|
239
|
+
},
|
240
|
+
},
|
241
|
+
};
|
242
|
+
```
|
243
|
+
|
244
|
+
#### appendPlugins
|
245
|
+
|
246
|
+
- **Type:** `(plugins: WebpackPluginInstance | WebpackPluginInstance[]) => void`
|
247
|
+
|
248
|
+
Add additional plugins at the end of the internal webpack plugins array, the plugin will be executed last.
|
249
|
+
|
250
|
+
```ts
|
251
|
+
export default {
|
252
|
+
tools: {
|
253
|
+
webpack: (config, { appendPlugins, webpack }) => {
|
254
|
+
// add a single plugin
|
255
|
+
appendPlugins([
|
256
|
+
new webpack.BannerPlugin({
|
257
|
+
banner: 'hello world!',
|
258
|
+
}),
|
259
|
+
]);
|
260
|
+
|
261
|
+
// Add multiple plugins
|
262
|
+
appendPlugins([new PluginA(), new PluginB()]);
|
263
|
+
},
|
264
|
+
},
|
265
|
+
};
|
266
|
+
```
|
267
|
+
|
268
|
+
#### removePlugin
|
269
|
+
|
270
|
+
- **Type:** `(name: string) => void`
|
271
|
+
|
272
|
+
Remove the internal webpack plugin, the parameter is the `constructor.name` of the plugin.
|
273
|
+
|
274
|
+
For example, remove the internal [fork-ts-checker-webpack-plugin](https://github.com/TypeStrong/fork-ts-checker-webpack-plugin):
|
275
|
+
|
276
|
+
```ts
|
277
|
+
export default {
|
278
|
+
tools: {
|
279
|
+
webpack: (config, { removePlugin }) => {
|
280
|
+
removePlugin('ForkTsCheckerWebpackPlugin');
|
281
|
+
},
|
282
|
+
},
|
283
|
+
};
|
284
|
+
```
|
285
|
+
|
286
|
+
#### mergeConfig
|
287
|
+
|
288
|
+
- **Type:** `(...configs: WebpackConfig[]) => WebpackConfig`
|
289
|
+
|
290
|
+
Used to merge multiple webpack configs, same as [webpack-merge](https://github.com/survivejs/webpack-merge).
|
291
|
+
|
292
|
+
```ts
|
293
|
+
export default {
|
294
|
+
tools: {
|
295
|
+
webpack: (config, { mergeConfig }) => {
|
296
|
+
return mergeConfig(config, {
|
297
|
+
devtool: 'eval',
|
298
|
+
});
|
299
|
+
},
|
300
|
+
},
|
301
|
+
};
|
302
|
+
```
|
@@ -6,13 +6,15 @@
|
|
6
6
|
"label": "use-bff",
|
7
7
|
"collapsed": true
|
8
8
|
},
|
9
|
-
|
9
|
+
{
|
10
|
+
"type": "dir",
|
11
|
+
"name": "page-performance",
|
12
|
+
"label": "page-performance",
|
13
|
+
"collapsed": true
|
14
|
+
},
|
15
|
+
"build-performance",
|
10
16
|
"compatibility",
|
11
|
-
"eslint",
|
12
17
|
"low-level",
|
13
18
|
"source-build",
|
14
|
-
"build-performance",
|
15
|
-
"inline-assets",
|
16
|
-
"optimize-bundle",
|
17
19
|
"web-server"
|
18
20
|
]
|
@@ -1 +1 @@
|
|
1
|
-
["function", "
|
1
|
+
["function", "frameworks", "extend-server", "sdk"]
|