@modern-js/main-doc 0.0.0-nightly-20240912170717 → 0.0.0-nightly-20240914170654
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/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 +2 -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/micro-frontend/c01-introduction.mdx +1 -1
- 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 +2 -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/micro-frontend/c01-introduction.mdx +1 -1
- 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 +4 -9
- 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,299 @@ title: webpack
|
|
4
4
|
|
5
5
|
# tools.webpack
|
6
6
|
|
7
|
-
|
7
|
+
- **类型:** `Object | Function | undefined`
|
8
|
+
- **默认值:** `undefined`
|
9
|
+
- **打包工具:** `仅支持 webpack`
|
8
10
|
|
9
|
-
|
11
|
+
`tools.webpack` 选项用于配置原生的 [webpack](https://webpack.js.org/)。
|
12
|
+
|
13
|
+
> `tools.bundlerChain` 同样可以修改 webpack 配置,并且功能更加强大,建议优先使用 `tools.bundlerChain`。
|
14
|
+
|
15
|
+
### Object 类型
|
16
|
+
|
17
|
+
`tools.webpack` 可以配置为一个对象,这个对象将会和内置的 webpack 配置通过 [webpack-merge](https://github.com/survivejs/webpack-merge) 进行深层合并。
|
18
|
+
|
19
|
+
比如添加 `resolve.alias` 配置:
|
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 类型
|
36
|
+
|
37
|
+
`tools.webpack` 也可以配置为一个函数,这个函数的第一个入参为内置的 webpack 配置对象,你可以对这个对象进行修改,然后返回一份新的配置。比如:
|
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
|
+
`tools.webpack` 函数返回的对象会直接作为最终使用的 webpack 配置,不会再与内置的 webpack 配置进行合并。
|
52
|
+
:::
|
53
|
+
|
54
|
+
### 工具集合
|
55
|
+
|
56
|
+
这个函数的第二个参数是一个对象,包含了一些工具函数和属性,详情如下:
|
57
|
+
|
58
|
+
#### env
|
59
|
+
|
60
|
+
- **类型:** `'development' | 'production' | 'test'`
|
61
|
+
|
62
|
+
通过 env 参数可以判断当前环境为 development、production 还是 test。比如:
|
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
|
+
- **类型:** `boolean`
|
80
|
+
|
81
|
+
通过 isProd 参数可以判断当前环境是否为 production。比如:
|
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
|
+
- **类型:** `'web' | 'node' | 'modern-web' | 'web-worker'`
|
99
|
+
|
100
|
+
通过 target 参数可以判断当前构建的目标运行时环境。比如:
|
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
|
+
- **类型:** `boolean`
|
118
|
+
|
119
|
+
判断当前构建的目标运行时环境是否为 `node`,等价于 `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
|
+
- **类型:** `boolean`
|
137
|
+
|
138
|
+
判断当前构建的目标运行时环境是否为 `web-worker`,等价于 `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
|
+
- **类型:** `typeof import('webpack')`
|
156
|
+
|
157
|
+
通过这个参数你可以拿到 webpack 实例。比如:
|
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
|
+
- **类型:** `typeof import('html-webpack-plugin')`
|
173
|
+
|
174
|
+
通过这个参数你可以拿到 HtmlWebpackPlugin 实例。
|
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
|
+
- **类型:** `(rules: RuleSetRule | RuleSetRule[]) => void`
|
189
|
+
|
190
|
+
添加额外的 [webpack rules](https://webpack.js.org/configuration/module/#modulerules)。
|
191
|
+
|
192
|
+
示例:
|
193
|
+
|
194
|
+
```ts
|
195
|
+
export default {
|
196
|
+
tools: {
|
197
|
+
webpack: (config, { addRules }) => {
|
198
|
+
// 添加单条规则
|
199
|
+
addRules({
|
200
|
+
test: /\.foo/,
|
201
|
+
loader: require.resolve('foo-loader'),
|
202
|
+
});
|
203
|
+
|
204
|
+
// 以数组形式添加多条规则
|
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
|
+
- **类型:** `(plugins: WebpackPluginInstance | WebpackPluginInstance[]) => void`
|
223
|
+
|
224
|
+
在内部 webpack 插件数组头部添加额外的插件,数组头部的插件会优先执行。
|
225
|
+
|
226
|
+
```ts
|
227
|
+
export default {
|
228
|
+
tools: {
|
229
|
+
webpack: (config, { prependPlugins, webpack }) => {
|
230
|
+
// 添加单个插件
|
231
|
+
prependPlugins(
|
232
|
+
new webpack.BannerPlugin({
|
233
|
+
banner: 'hello world!',
|
234
|
+
}),
|
235
|
+
);
|
236
|
+
|
237
|
+
// 以数组形式添加多个插件
|
238
|
+
prependPlugins([new PluginA(), new PluginB()]);
|
239
|
+
},
|
240
|
+
},
|
241
|
+
};
|
242
|
+
```
|
243
|
+
|
244
|
+
#### appendPlugins
|
245
|
+
|
246
|
+
- **类型:** `(plugins: WebpackPluginInstance | WebpackPluginInstance[]) => void`
|
247
|
+
|
248
|
+
在内部 webpack 插件数组尾部添加额外的插件,数组尾部的插件会在最后执行。
|
249
|
+
|
250
|
+
```ts
|
251
|
+
export default {
|
252
|
+
tools: {
|
253
|
+
webpack: (config, { appendPlugins, webpack }) => {
|
254
|
+
// 添加单个插件
|
255
|
+
appendPlugins([
|
256
|
+
new webpack.BannerPlugin({
|
257
|
+
banner: 'hello world!',
|
258
|
+
}),
|
259
|
+
]);
|
260
|
+
|
261
|
+
// 以数组形式添加多个插件
|
262
|
+
appendPlugins([new PluginA(), new PluginB()]);
|
263
|
+
},
|
264
|
+
},
|
265
|
+
};
|
266
|
+
```
|
267
|
+
|
268
|
+
#### removePlugin
|
269
|
+
|
270
|
+
- **类型:** `(name: string) => void`
|
271
|
+
|
272
|
+
删除内部的 webpack 插件,参数为该插件的 `constructor.name`。
|
273
|
+
|
274
|
+
例如,删除内部的 [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
|
+
- **类型:** `(...configs: WebpackConfig[]) => WebpackConfig`
|
289
|
+
|
290
|
+
用于合并多份 webpack 配置,等价于 [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
|
+
```
|
@@ -4,7 +4,7 @@ sidebar_position: 1
|
|
4
4
|
|
5
5
|
# 使用 Rspack
|
6
6
|
|
7
|
-
import Rspack from '@
|
7
|
+
import Rspack from '@site-docs/components/rspackTip.mdx';
|
8
8
|
|
9
9
|
<Rspack />
|
10
10
|
|
@@ -42,7 +42,7 @@ export default defineConfig({
|
|
42
42
|
如果你当前版本低于 MAJOR_VERSION.59.0,可通过执行 `npx modern upgrade` 进行升级。
|
43
43
|
:::
|
44
44
|
|
45
|
-
import RspackPrecautions from '@
|
45
|
+
import RspackPrecautions from '@site-docs/components/rspackPrecautions.mdx';
|
46
46
|
|
47
47
|
<RspackPrecautions />
|
48
48
|
|
@@ -167,7 +167,7 @@ declare module '*.styl' {
|
|
167
167
|
|
168
168
|
上述方法虽然可以解决 CSS Modules 在 TypeScript 中的类型问题,但是无法准确地提示出某个 CSS 文件导出了哪些类名。
|
169
169
|
|
170
|
-
|
170
|
+
Modern.js 支持为 CSS Modules 生成准确的类型声明,你只需要开启 [output.enableCssModuleTSDeclaration](/configure/app/output/enable-css-module-tsdeclaration) 配置项,再执行构建命令,Modern.js 就会为项目中所有的 CSS Modules 文件生成相应的类型声明文件。
|
171
171
|
|
172
172
|
```ts
|
173
173
|
export default {
|
@@ -42,7 +42,7 @@ dist
|
|
42
42
|
|
43
43
|
## 修改产物目录
|
44
44
|
|
45
|
-
|
45
|
+
Modern.js 提供了多个配置项来修改产物目录和产物名称,你可以:
|
46
46
|
|
47
47
|
- 通过 [output.filename](/configure/app/output/filename) 来修改产物的文件名。
|
48
48
|
- 通过 [output.distPath](/configure/app/output/dist-path) 来修改产物的输出路径。
|
@@ -158,7 +158,7 @@ dist
|
|
158
158
|
|
159
159
|
## 产物不写入磁盘
|
160
160
|
|
161
|
-
默认情况下,
|
161
|
+
默认情况下,Modern.js 会将构建产物写入磁盘,以方便开发者查看产物的内容,或是配置静态资源的代理规则。
|
162
162
|
|
163
163
|
在开发环境,你可以选择将构建产物保存在 Dev Server 的内存中,从而减少文件操作产生的开销。
|
164
164
|
|
@@ -4,7 +4,7 @@ sidebar_position: 2
|
|
4
4
|
|
5
5
|
# 构建工具
|
6
6
|
|
7
|
-
Modern.js
|
7
|
+
Modern.js 构建是基于 [Rsbuild](https://rsbuild.dev/) 实现的,并支持在 Webpack 和 Rspack 两种打包工具间无缝切换。
|
8
8
|
|
9
9
|
:::tip 什么是 Rsbuild
|
10
10
|
Rsbuild 是基于 Rspack 的构建工具,是一个增强版的 Rspack CLI,更易用、开箱即用。
|
@@ -12,13 +12,13 @@ BFF 服务作为前端应用程序和服务端 API 之间的中介,可以为
|
|
12
12
|
|
13
13
|
## Bundler
|
14
14
|
|
15
|
-
import Bundler from '@
|
15
|
+
import Bundler from '@site-docs/components/bundler.mdx';
|
16
16
|
|
17
17
|
<Bundler />
|
18
18
|
|
19
19
|
## Builder
|
20
20
|
|
21
|
-
import Builder from '@
|
21
|
+
import Builder from '@site-docs/components/builder.mdx';
|
22
22
|
|
23
23
|
<Builder />
|
24
24
|
|
@@ -36,25 +36,25 @@ CSR 是 "Client-Side Rendering"(客户端渲染)的缩写。它表示页面
|
|
36
36
|
|
37
37
|
## Micro-frontend
|
38
38
|
|
39
|
-
import MicroFrontend from '@
|
39
|
+
import MicroFrontend from '@site-docs/components/micro-frontend.mdx';
|
40
40
|
|
41
41
|
<MicroFrontend />
|
42
42
|
|
43
43
|
## Module Federation
|
44
44
|
|
45
|
-
import ModuleFederation from '@
|
45
|
+
import ModuleFederation from '@site-docs/components/module-federation.mdx';
|
46
46
|
|
47
47
|
<ModuleFederation />
|
48
48
|
|
49
49
|
## Rsbuild
|
50
50
|
|
51
|
-
import Rsbuild from '@
|
51
|
+
import Rsbuild from '@site-docs/components/rsbuild.mdx';
|
52
52
|
|
53
53
|
<Rsbuild />
|
54
54
|
|
55
55
|
## Rspack
|
56
56
|
|
57
|
-
import Rspack from '@
|
57
|
+
import Rspack from '@site-docs/components/rspack.mdx';
|
58
58
|
|
59
59
|
<Rspack />
|
60
60
|
|
@@ -76,6 +76,6 @@ SSG 是 "Static Site Generation"(静态网站生成)的缩写。它表示网
|
|
76
76
|
|
77
77
|
## SWC
|
78
78
|
|
79
|
-
import SWC from '@
|
79
|
+
import SWC from '@site-docs/components/swc.mdx';
|
80
80
|
|
81
81
|
<SWC />
|
@@ -72,7 +72,7 @@ export default defineConfig({
|
|
72
72
|
|
73
73
|
- 提供 `modern dev`, `modern build` 等常用的 CLI 命令。
|
74
74
|
- 集成 Modern.js Core,提供配置解析、插件加载等能力。
|
75
|
-
- 集成
|
75
|
+
- 集成 Rsbuild,提供构建能力。
|
76
76
|
- 集成 Modern.js Server,提供开发和生产服务器相关能力。
|
77
77
|
|
78
78
|
`@modern-js/app-tools` 是基于 Modern.js 的插件体系实现的,本质上是一个插件,因此你需要在配置文件的 `plugins` 字段中注册 `appTools`:
|
@@ -40,8 +40,8 @@ Modern.js 提供 [inspect 命令](/apis/app/commands.html) 用于查看项目最
|
|
40
40
|
|
41
41
|
Inspect config succeed, open following files to view the content:
|
42
42
|
|
43
|
-
-
|
44
|
-
- Rspack Config (web): /root/my-project/dist/rspack.config.web.
|
43
|
+
- Rsbuild Config: /root/my-project/dist/rsbuild.config.mjs
|
44
|
+
- Rspack Config (web): /root/my-project/dist/rspack.config.web.mjs
|
45
45
|
```
|
46
46
|
|
47
47
|
---
|
@@ -11,7 +11,7 @@ sidebar_position: 2
|
|
11
11
|
|
12
12
|
:::
|
13
13
|
|
14
|
-
import SWC from '@
|
14
|
+
import SWC from '@site-docs/components/swc.mdx';
|
15
15
|
|
16
16
|
<SWC />
|
17
17
|
|
@@ -51,9 +51,9 @@ import SWC from '@modern-js/builder-doc/docs/zh/shared/swc.md';
|
|
51
51
|
|
52
52
|
### 在 Modern.js 框架中使用
|
53
53
|
|
54
|
-
Modern.js 框架对
|
54
|
+
Modern.js 框架对 SWC 插件进行了封装,你可以通过以下方式来使用:
|
55
55
|
|
56
|
-
import EnableSWC from '@
|
56
|
+
import EnableSWC from '@site-docs/components/enableSwc.mdx';
|
57
57
|
|
58
58
|
<EnableSWC />
|
59
59
|
|
@@ -285,7 +285,7 @@ boolean | {
|
|
285
285
|
#### extensions.pluginImport
|
286
286
|
|
287
287
|
:::tip
|
288
|
-
|
288
|
+
Modern.js 提供了 [source.transformImport](/configure/app/source/transform-import) 配置项,因此你不需要手动配置 `extensions.pluginImport`。
|
289
289
|
:::
|
290
290
|
|
291
291
|
移植自 [babel-plugin-import](https://github.com/umijs/babel-plugin-import),配置选项保持一致。
|
@@ -11,7 +11,7 @@ sidebar_position: 3
|
|
11
11
|
|
12
12
|
:::
|
13
13
|
|
14
|
-
import Esbuild from '@
|
14
|
+
import Esbuild from '@site-docs/components/esbuild.mdx';
|
15
15
|
|
16
16
|
<Esbuild />
|
17
17
|
|
@@ -19,7 +19,7 @@ import Esbuild from '@modern-js/builder-doc/docs/zh/shared/esbuild.md';
|
|
19
19
|
|
20
20
|
### 在 Modern.js 框架中使用
|
21
21
|
|
22
|
-
Modern.js 框架默认集成了
|
22
|
+
Modern.js 框架默认集成了 esbuild 插件,因此,你不需要手动安装和注册插件,只需要使用 [tools.esbuild](/configure/app/tools/esbuild.html) 配置项即可:
|
23
23
|
|
24
24
|
```js
|
25
25
|
export default defineConfig({
|
@@ -102,7 +102,7 @@ builderPluginEsbuild({
|
|
102
102
|
|
103
103
|
#### 关闭代码转译
|
104
104
|
|
105
|
-
将 `loader` 设置为 `false` 来关闭 esbuild 代码转译,此时
|
105
|
+
将 `loader` 设置为 `false` 来关闭 esbuild 代码转译,此时 Modern.js 会继续使用 Babel 来进行代码转译。
|
106
106
|
|
107
107
|
```ts
|
108
108
|
builderPluginEsbuild({
|
@@ -146,7 +146,7 @@ builderPluginEsbuild({
|
|
146
146
|
|
147
147
|
#### 关闭代码压缩
|
148
148
|
|
149
|
-
将 `minimize` 设置为 `false` 来关闭 esbuild 代码压缩,此时
|
149
|
+
将 `minimize` 设置为 `false` 来关闭 esbuild 代码压缩,此时 Modern.js 会继续使用 Terser 进行代码压缩。
|
150
150
|
|
151
151
|
```ts
|
152
152
|
builderPluginEsbuild({
|
@@ -156,7 +156,7 @@ builderPluginEsbuild({
|
|
156
156
|
|
157
157
|
## esbuild 局限性
|
158
158
|
|
159
|
-
虽然 esbuild 能给现有的 webpack 项目带来明显的构建性能提升,但这个工具在接入
|
159
|
+
虽然 esbuild 能给现有的 webpack 项目带来明显的构建性能提升,但这个工具在接入 Modern.js 时还存在一定的局限性,需要大家在接入的时候格外注意。
|
160
160
|
|
161
161
|
### 兼容性
|
162
162
|
|
@@ -190,7 +190,7 @@ builderPluginEsbuild({
|
|
190
190
|
|
191
191
|
### 不支持 Babel 插件
|
192
192
|
|
193
|
-
使用 esbuild 进行代码转译时,诸如 `babel-plugin-import` 等原有 Babel 插件的语法编译功能在开启 esbuild 后无法使用。并且由于
|
193
|
+
使用 esbuild 进行代码转译时,诸如 `babel-plugin-import` 等原有 Babel 插件的语法编译功能在开启 esbuild 后无法使用。并且由于 Modern.js 底层使用的是 esbuild 的 `Transform API`,因此不支持使用额外 esbuild 插件来进行自定义编译过程。
|
194
194
|
|
195
195
|
如果你有 `babel-plugin-import` 等 Babel 插件相关诉求,可以使用 SWC 插件。
|
196
196
|
|
package/package.json
CHANGED
@@ -15,17 +15,14 @@
|
|
15
15
|
"modern",
|
16
16
|
"modern.js"
|
17
17
|
],
|
18
|
-
"version": "0.0.0-nightly-
|
18
|
+
"version": "0.0.0-nightly-20240914170654",
|
19
19
|
"publishConfig": {
|
20
20
|
"registry": "https://registry.npmjs.org/",
|
21
21
|
"access": "public",
|
22
22
|
"provenance": true
|
23
23
|
},
|
24
24
|
"dependencies": {
|
25
|
-
"@modern-js/sandpack-react": "0.0.0-nightly-
|
26
|
-
},
|
27
|
-
"peerDependencies": {
|
28
|
-
"@modern-js/builder-doc": "0.0.0-nightly-20240912170717"
|
25
|
+
"@modern-js/sandpack-react": "0.0.0-nightly-20240914170654"
|
29
26
|
},
|
30
27
|
"devDependencies": {
|
31
28
|
"@rspress/shared": "1.31.0",
|
@@ -38,14 +35,12 @@
|
|
38
35
|
"react-dom": "^18",
|
39
36
|
"rspress": "1.31.0",
|
40
37
|
"ts-node": "^10.9.1",
|
41
|
-
"typescript": "^5"
|
42
|
-
"@modern-js/builder-doc": "0.0.0-nightly-20240912170717"
|
38
|
+
"typescript": "^5"
|
43
39
|
},
|
44
40
|
"scripts": {
|
45
41
|
"dev": "rspress dev",
|
46
42
|
"dev:no_lazy": "LAZY=false rspress dev",
|
47
|
-
"build": "
|
48
|
-
"build:doc": "rspress build",
|
43
|
+
"build": "rspress build",
|
49
44
|
"preview": "rspress preview"
|
50
45
|
}
|
51
46
|
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { useLang } from 'rspress/runtime';
|
3
|
+
|
4
|
+
const RsbuildLInk = ({ configName }: { configName: string }) => {
|
5
|
+
const lang = useLang();
|
6
|
+
const href = `https://rsbuild.dev/${lang === 'zh' ? 'zh/' : ''}config/${configName
|
7
|
+
.split('.')
|
8
|
+
.join('/')
|
9
|
+
.replace(/([a-z])([A-Z])/g, '$1-$2')
|
10
|
+
.toLowerCase()}`;
|
11
|
+
|
12
|
+
return (
|
13
|
+
<a href={href} target="__blank">
|
14
|
+
Rsbuild - {configName}
|
15
|
+
</a>
|
16
|
+
);
|
17
|
+
};
|
18
|
+
|
19
|
+
export default RsbuildLInk;
|
File without changes
|
File without changes
|