diff --git a/e2e/cases/css/css-minimize/index.test.ts b/e2e/cases/css/css-minimize/index.test.ts
index 1cc0f6062d..5c45a8ad3c 100644
--- a/e2e/cases/css/css-minimize/index.test.ts
+++ b/e2e/cases/css/css-minimize/index.test.ts
@@ -1,6 +1,5 @@
import { build, rspackOnlyTest } from '@e2e/helper';
import { expect } from '@playwright/test';
-import { pluginCssMinimizer } from '@rsbuild/plugin-css-minimizer';
rspackOnlyTest('should minimize CSS correctly by default', async () => {
const rsbuild = await build({
@@ -16,22 +15,3 @@ rspackOnlyTest('should minimize CSS correctly by default', async () => {
'.a{text-align:center;text-align:center;font-size:1.5rem;line-height:1.5}.b{text-align:center;background:#fafafa;font-size:1.5rem;line-height:1.5}',
);
});
-
-rspackOnlyTest(
- 'should minimize CSS with plugin-css-minimizer correctly',
- async () => {
- const rsbuild = await build({
- cwd: __dirname,
- rsbuildConfig: {},
- plugins: [pluginCssMinimizer()],
- });
- const files = await rsbuild.unwrapOutputJSON();
-
- const content =
- files[Object.keys(files).find((file) => file.endsWith('.css'))!];
-
- expect(content).toEqual(
- '.a,.b{font-size:1.5rem;line-height:1.5;text-align:center}.b{background:#fafafa}',
- );
- },
-);
diff --git a/e2e/cases/esm-exports/test.mjs b/e2e/cases/esm-exports/test.mjs
index 41d00e0f6b..0359100fac 100644
--- a/e2e/cases/esm-exports/test.mjs
+++ b/e2e/cases/esm-exports/test.mjs
@@ -3,7 +3,6 @@ import { getBabelConfigForWeb } from '@rsbuild/babel-preset/web';
import { pluginAssetsRetry } from '@rsbuild/plugin-assets-retry';
import { pluginBabel } from '@rsbuild/plugin-babel';
import { pluginCheckSyntax } from '@rsbuild/plugin-check-syntax';
-import { pluginCssMinimizer } from '@rsbuild/plugin-css-minimizer';
import { pluginEslint } from '@rsbuild/plugin-eslint';
import { pluginImageCompress } from '@rsbuild/plugin-image-compress';
import { pluginLess } from '@rsbuild/plugin-less';
@@ -31,7 +30,6 @@ export default {
pluginAssetsRetry,
pluginBabel,
pluginCheckSyntax,
- pluginCssMinimizer,
pluginImageCompress,
pluginEslint,
pluginLess,
diff --git a/e2e/package.json b/e2e/package.json
index af9e10ba71..694ee8f12e 100644
--- a/e2e/package.json
+++ b/e2e/package.json
@@ -26,7 +26,6 @@
"@rsbuild/plugin-assets-retry": "workspace:*",
"@rsbuild/plugin-babel": "workspace:*",
"@rsbuild/plugin-check-syntax": "workspace:*",
- "@rsbuild/plugin-css-minimizer": "workspace:*",
"@rsbuild/plugin-eslint": "workspace:*",
"@rsbuild/plugin-image-compress": "workspace:*",
"@rsbuild/plugin-less": "workspace:*",
diff --git a/packages/plugin-css-minimizer/LICENSE b/packages/plugin-css-minimizer/LICENSE
deleted file mode 100644
index 82d38c25b5..0000000000
--- a/packages/plugin-css-minimizer/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2023-present Bytedance, Inc. and its affiliates.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/packages/plugin-css-minimizer/README.md b/packages/plugin-css-minimizer/README.md
deleted file mode 100644
index 92531b7215..0000000000
--- a/packages/plugin-css-minimizer/README.md
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-# Rsbuild
-
-The Rspack-based build tool. It's fast, out-of-the-box and extensible.
-
-## Documentation
-
-https://rsbuild.dev/
-
-## Contributing
-
-Please read the [Contributing Guide](https://github.com/web-infra-dev/rsbuild/blob/main/CONTRIBUTING.md).
-
-## License
-
-Rsbuild is [MIT licensed](https://github.com/web-infra-dev/rsbuild/blob/main/LICENSE).
diff --git a/packages/plugin-css-minimizer/modern.config.ts b/packages/plugin-css-minimizer/modern.config.ts
deleted file mode 100644
index 006abf4e4a..0000000000
--- a/packages/plugin-css-minimizer/modern.config.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { configForDualPackage } from '@rsbuild/config/modern.config.ts';
-
-export default configForDualPackage;
diff --git a/packages/plugin-css-minimizer/package.json b/packages/plugin-css-minimizer/package.json
deleted file mode 100644
index 8022b22282..0000000000
--- a/packages/plugin-css-minimizer/package.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "name": "@rsbuild/plugin-css-minimizer",
- "version": "1.0.0-alpha.3",
- "description": "CSS minimizer for Rsbuild",
- "repository": {
- "type": "git",
- "url": "https://github.com/web-infra-dev/rsbuild",
- "directory": "packages/plugin-css-minimizer"
- },
- "license": "MIT",
- "type": "module",
- "exports": {
- ".": {
- "types": "./dist/index.d.ts",
- "import": "./dist/index.js",
- "require": "./dist/index.cjs"
- }
- },
- "main": "./dist/index.cjs",
- "types": "./dist/index.d.ts",
- "files": [
- "dist"
- ],
- "scripts": {
- "build": "modern build",
- "dev": "modern build --watch"
- },
- "dependencies": {
- "css-minimizer-webpack-plugin": "5.0.1",
- "reduce-configs": "^1.0.0"
- },
- "devDependencies": {
- "@rsbuild/core": "workspace:*",
- "@types/lodash": "^4.17.6",
- "@types/node": "18.x",
- "typescript": "^5.5.2"
- },
- "peerDependencies": {
- "@rsbuild/core": "workspace:^1.0.0-alpha.3"
- },
- "publishConfig": {
- "access": "public",
- "provenance": true,
- "registry": "https://registry.npmjs.org/"
- }
-}
diff --git a/packages/plugin-css-minimizer/src/index.ts b/packages/plugin-css-minimizer/src/index.ts
deleted file mode 100644
index 1a95ac12ca..0000000000
--- a/packages/plugin-css-minimizer/src/index.ts
+++ /dev/null
@@ -1,82 +0,0 @@
-import type {
- ChainIdentifier,
- RsbuildPlugin,
- Rspack,
- RspackChain,
-} from '@rsbuild/core';
-import CssMinimizerWebpackPlugin from 'css-minimizer-webpack-plugin';
-import type CssMinimizerPlugin from 'css-minimizer-webpack-plugin';
-import { type ConfigChain, reduceConfigs } from 'reduce-configs';
-
-export type CssMinimizerPluginOptions = CssMinimizerPlugin.BasePluginOptions &
- CssMinimizerPlugin.DefinedDefaultMinimizerAndOptions;
-
-export type PluginCssMinimizerOptions = {
- /**
- * Used to customize the options of css-minimizer-webpack-plugin.
- * @see https://github.com/webpack-contrib/css-minimizer-webpack-plugin
- */
- pluginOptions?: ConfigChain;
-};
-
-type CssNanoOptions = {
- configFile?: string | undefined;
- preset?: [string, object] | string | undefined;
-};
-
-const getCssnanoDefaultOptions = (): CssNanoOptions => ({
- preset: [
- 'default',
- {
- // merge longhand will break safe-area-inset-top, so disable it
- // https://github.com/cssnano/cssnano/issues/803
- // https://github.com/cssnano/cssnano/issues/967
- mergeLonghand: false,
- },
- ],
-});
-
-export function applyCSSMinimizer(
- chain: RspackChain,
- CHAIN_ID: ChainIdentifier,
- options: PluginCssMinimizerOptions = {},
-): void {
- const mergedOptions: CssMinimizerPluginOptions = reduceConfigs({
- initial: {
- minify: CssMinimizerWebpackPlugin.cssnanoMinify,
- minimizerOptions: getCssnanoDefaultOptions(),
- },
- config: options.pluginOptions,
- });
-
- chain.optimization
- .minimizer(CHAIN_ID.MINIMIZER.CSS)
- .use(CssMinimizerWebpackPlugin as Rspack.RspackPluginInstance, [
- mergedOptions,
- ])
- .end();
-}
-
-export const PLUGIN_CSS_MINIMIZER_NAME = 'rsbuild:css-minimizer';
-
-export const pluginCssMinimizer = (
- options?: PluginCssMinimizerOptions,
-): RsbuildPlugin => ({
- name: PLUGIN_CSS_MINIMIZER_NAME,
-
- setup(api) {
- api.modifyBundlerChain(async (chain, { CHAIN_ID, environment, isProd }) => {
- const { config } = environment;
- const { minify } = config.output;
-
- if (
- isProd &&
- (minify === true || (typeof minify === 'object' && minify.css))
- ) {
- applyCSSMinimizer(chain, CHAIN_ID, options);
- }
- });
- },
-});
-
-export { CssMinimizerWebpackPlugin };
diff --git a/packages/plugin-css-minimizer/tsconfig.json b/packages/plugin-css-minimizer/tsconfig.json
deleted file mode 100644
index c695a9910b..0000000000
--- a/packages/plugin-css-minimizer/tsconfig.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "extends": "@rsbuild/config/tsconfig",
- "compilerOptions": {
- "outDir": "./dist",
- "baseUrl": "./",
- "rootDir": "src",
- "composite": true,
- "isolatedDeclarations": true
- },
- "references": [
- {
- "path": "../core"
- }
- ],
- "include": ["src"]
-}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 3d62338866..e65fe6710d 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -109,9 +109,6 @@ importers:
'@rsbuild/plugin-check-syntax':
specifier: workspace:*
version: link:../packages/plugin-check-syntax
- '@rsbuild/plugin-css-minimizer':
- specifier: workspace:*
- version: link:../packages/plugin-css-minimizer
'@rsbuild/plugin-eslint':
specifier: workspace:*
version: link:../packages/plugin-eslint
@@ -963,28 +960,6 @@ importers:
specifier: ^5.5.2
version: 5.5.2
- packages/plugin-css-minimizer:
- dependencies:
- css-minimizer-webpack-plugin:
- specifier: 5.0.1
- version: 5.0.1(lightningcss@1.25.1)(webpack@5.92.1)
- reduce-configs:
- specifier: ^1.0.0
- version: 1.0.0
- devDependencies:
- '@rsbuild/core':
- specifier: workspace:*
- version: link:../core
- '@types/lodash':
- specifier: ^4.17.6
- version: 4.17.6
- '@types/node':
- specifier: 18.x
- version: 18.19.31
- typescript:
- specifier: ^5.5.2
- version: 5.5.2
-
packages/plugin-eslint:
dependencies:
eslint-webpack-plugin:
@@ -4110,9 +4085,6 @@ packages:
camelize@1.0.1:
resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==}
- caniuse-api@3.0.0:
- resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
-
caniuse-lite@1.0.30001640:
resolution: {integrity: sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA==}
@@ -4222,9 +4194,6 @@ packages:
color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
- colord@2.9.3:
- resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
-
colorette@2.0.20:
resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
@@ -4515,12 +4484,6 @@ packages:
resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==}
engines: {node: '>=4'}
- css-declaration-sorter@7.2.0:
- resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==}
- engines: {node: ^14 || ^16 || >=18}
- peerDependencies:
- postcss: ^8.0.9
-
css-loader@7.1.2:
resolution: {integrity: sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==}
engines: {node: '>= 18.12.0'}
@@ -4533,31 +4496,6 @@ packages:
webpack:
optional: true
- css-minimizer-webpack-plugin@5.0.1:
- resolution: {integrity: sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==}
- engines: {node: '>= 14.15.0'}
- peerDependencies:
- '@parcel/css': '*'
- '@swc/css': '*'
- clean-css: '*'
- csso: '*'
- esbuild: '*'
- lightningcss: '*'
- webpack: ^5.0.0
- peerDependenciesMeta:
- '@parcel/css':
- optional: true
- '@swc/css':
- optional: true
- clean-css:
- optional: true
- csso:
- optional: true
- esbuild:
- optional: true
- lightningcss:
- optional: true
-
css-select@5.1.0:
resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
@@ -4581,24 +4519,6 @@ packages:
engines: {node: '>=4'}
hasBin: true
- cssnano-preset-default@6.1.2:
- resolution: {integrity: sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
- cssnano-utils@4.0.2:
- resolution: {integrity: sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
- cssnano@6.1.2:
- resolution: {integrity: sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
csso@5.0.5:
resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
@@ -5830,9 +5750,6 @@ packages:
lodash.kebabcase@4.1.1:
resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==}
- lodash.memoize@4.1.2:
- resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
-
lodash.merge@4.6.2:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
@@ -5842,9 +5759,6 @@ packages:
lodash.truncate@4.4.2:
resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==}
- lodash.uniq@4.5.0:
- resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
-
lodash@4.17.21:
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
@@ -6464,48 +6378,6 @@ packages:
polka@0.5.2:
resolution: {integrity: sha512-FVg3vDmCqP80tOrs+OeNlgXYmFppTXdjD5E7I4ET1NjvtNmQrb1/mJibybKkb/d4NA7YWAr1ojxuhpL3FHqdlw==}
- postcss-calc@9.0.1:
- resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.2.2
-
- postcss-colormin@6.1.0:
- resolution: {integrity: sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
- postcss-convert-values@6.1.0:
- resolution: {integrity: sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
- postcss-discard-comments@6.0.2:
- resolution: {integrity: sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
- postcss-discard-duplicates@6.0.3:
- resolution: {integrity: sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
- postcss-discard-empty@6.0.3:
- resolution: {integrity: sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
- postcss-discard-overridden@6.0.2:
- resolution: {integrity: sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
postcss-import@15.1.0:
resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
engines: {node: '>=14.0.0'}
@@ -6561,42 +6433,6 @@ packages:
webpack:
optional: true
- postcss-merge-longhand@6.0.5:
- resolution: {integrity: sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
- postcss-merge-rules@6.1.1:
- resolution: {integrity: sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
- postcss-minify-font-values@6.1.0:
- resolution: {integrity: sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
- postcss-minify-gradients@6.0.3:
- resolution: {integrity: sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
- postcss-minify-params@6.1.0:
- resolution: {integrity: sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
- postcss-minify-selectors@6.0.4:
- resolution: {integrity: sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
postcss-modules-extract-imports@3.1.0:
resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==}
engines: {node: ^10 || ^12 || >= 14}
@@ -6632,99 +6468,15 @@ packages:
peerDependencies:
postcss: ^8.2.14
- postcss-normalize-charset@6.0.2:
- resolution: {integrity: sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
- postcss-normalize-display-values@6.0.2:
- resolution: {integrity: sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
- postcss-normalize-positions@6.0.2:
- resolution: {integrity: sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
- postcss-normalize-repeat-style@6.0.2:
- resolution: {integrity: sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
- postcss-normalize-string@6.0.2:
- resolution: {integrity: sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
- postcss-normalize-timing-functions@6.0.2:
- resolution: {integrity: sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
- postcss-normalize-unicode@6.1.0:
- resolution: {integrity: sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
- postcss-normalize-url@6.0.2:
- resolution: {integrity: sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
- postcss-normalize-whitespace@6.0.2:
- resolution: {integrity: sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
- postcss-ordered-values@6.0.2:
- resolution: {integrity: sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
postcss-pxtorem@6.1.0:
resolution: {integrity: sha512-ROODSNci9ADal3zUcPHOF/K83TiCgNSPXQFSbwyPHNV8ioHIE4SaC+FPOufd8jsr5jV2uIz29v1Uqy1c4ov42g==}
peerDependencies:
postcss: ^8.0.0
- postcss-reduce-initial@6.1.0:
- resolution: {integrity: sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
- postcss-reduce-transforms@6.0.2:
- resolution: {integrity: sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
postcss-selector-parser@6.0.16:
resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==}
engines: {node: '>=4'}
- postcss-svgo@6.0.3:
- resolution: {integrity: sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==}
- engines: {node: ^14 || ^16 || >= 18}
- peerDependencies:
- postcss: ^8.4.31
-
- postcss-unique-selectors@6.0.4:
- resolution: {integrity: sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
postcss-value-parser@4.2.0:
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
@@ -7514,12 +7266,6 @@ packages:
react: '>= 16.8.0'
react-dom: '>= 16.8.0'
- stylehacks@6.1.1:
- resolution: {integrity: sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==}
- engines: {node: ^14 || ^16 || >=18.0}
- peerDependencies:
- postcss: ^8.4.31
-
stylis@4.3.2:
resolution: {integrity: sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==}
@@ -11257,13 +11003,6 @@ snapshots:
camelize@1.0.1: {}
- caniuse-api@3.0.0:
- dependencies:
- browserslist: 4.23.1
- caniuse-lite: 1.0.30001640
- lodash.memoize: 4.1.2
- lodash.uniq: 4.5.0
-
caniuse-lite@1.0.30001640: {}
ccount@2.0.1: {}
@@ -11389,8 +11128,6 @@ snapshots:
color-name@1.1.4: {}
- colord@2.9.3: {}
-
colorette@2.0.20: {}
combined-stream@1.0.8:
@@ -11517,10 +11254,6 @@ snapshots:
css-color-keywords@1.0.0: {}
- css-declaration-sorter@7.2.0(postcss@8.4.39):
- dependencies:
- postcss: 8.4.39
-
css-loader@7.1.2(@rspack/core@1.0.0-alpha.0(@swc/helpers@0.5.11))(webpack@5.92.1):
dependencies:
icss-utils: 5.1.0(postcss@8.4.39)
@@ -11535,18 +11268,6 @@ snapshots:
'@rspack/core': 1.0.0-alpha.0(@swc/helpers@0.5.11)
webpack: 5.92.1
- css-minimizer-webpack-plugin@5.0.1(lightningcss@1.25.1)(webpack@5.92.1):
- dependencies:
- '@jridgewell/trace-mapping': 0.3.25
- cssnano: 6.1.2(postcss@8.4.39)
- jest-worker: 29.7.0
- postcss: 8.4.39
- schema-utils: 4.2.0
- serialize-javascript: 6.0.2
- webpack: 5.92.1
- optionalDependencies:
- lightningcss: 1.25.1
-
css-select@5.1.0:
dependencies:
boolbase: 1.0.0
@@ -11575,50 +11296,6 @@ snapshots:
cssesc@3.0.0: {}
- cssnano-preset-default@6.1.2(postcss@8.4.39):
- dependencies:
- browserslist: 4.23.1
- css-declaration-sorter: 7.2.0(postcss@8.4.39)
- cssnano-utils: 4.0.2(postcss@8.4.39)
- postcss: 8.4.39
- postcss-calc: 9.0.1(postcss@8.4.39)
- postcss-colormin: 6.1.0(postcss@8.4.39)
- postcss-convert-values: 6.1.0(postcss@8.4.39)
- postcss-discard-comments: 6.0.2(postcss@8.4.39)
- postcss-discard-duplicates: 6.0.3(postcss@8.4.39)
- postcss-discard-empty: 6.0.3(postcss@8.4.39)
- postcss-discard-overridden: 6.0.2(postcss@8.4.39)
- postcss-merge-longhand: 6.0.5(postcss@8.4.39)
- postcss-merge-rules: 6.1.1(postcss@8.4.39)
- postcss-minify-font-values: 6.1.0(postcss@8.4.39)
- postcss-minify-gradients: 6.0.3(postcss@8.4.39)
- postcss-minify-params: 6.1.0(postcss@8.4.39)
- postcss-minify-selectors: 6.0.4(postcss@8.4.39)
- postcss-normalize-charset: 6.0.2(postcss@8.4.39)
- postcss-normalize-display-values: 6.0.2(postcss@8.4.39)
- postcss-normalize-positions: 6.0.2(postcss@8.4.39)
- postcss-normalize-repeat-style: 6.0.2(postcss@8.4.39)
- postcss-normalize-string: 6.0.2(postcss@8.4.39)
- postcss-normalize-timing-functions: 6.0.2(postcss@8.4.39)
- postcss-normalize-unicode: 6.1.0(postcss@8.4.39)
- postcss-normalize-url: 6.0.2(postcss@8.4.39)
- postcss-normalize-whitespace: 6.0.2(postcss@8.4.39)
- postcss-ordered-values: 6.0.2(postcss@8.4.39)
- postcss-reduce-initial: 6.1.0(postcss@8.4.39)
- postcss-reduce-transforms: 6.0.2(postcss@8.4.39)
- postcss-svgo: 6.0.3(postcss@8.4.39)
- postcss-unique-selectors: 6.0.4(postcss@8.4.39)
-
- cssnano-utils@4.0.2(postcss@8.4.39):
- dependencies:
- postcss: 8.4.39
-
- cssnano@6.1.2(postcss@8.4.39):
- dependencies:
- cssnano-preset-default: 6.1.2(postcss@8.4.39)
- lilconfig: 3.1.1
- postcss: 8.4.39
-
csso@5.0.5:
dependencies:
css-tree: 2.2.1
@@ -12933,16 +12610,12 @@ snapshots:
lodash.kebabcase@4.1.1: {}
- lodash.memoize@4.1.2: {}
-
lodash.merge@4.6.2: {}
lodash.startcase@4.4.0: {}
lodash.truncate@4.4.2: {}
- lodash.uniq@4.5.0: {}
-
lodash@4.17.21: {}
log-symbols@4.1.0:
@@ -13833,42 +13506,6 @@ snapshots:
'@polka/url': 0.5.0
trouter: 2.0.1
- postcss-calc@9.0.1(postcss@8.4.39):
- dependencies:
- postcss: 8.4.39
- postcss-selector-parser: 6.0.16
- postcss-value-parser: 4.2.0
-
- postcss-colormin@6.1.0(postcss@8.4.39):
- dependencies:
- browserslist: 4.23.1
- caniuse-api: 3.0.0
- colord: 2.9.3
- postcss: 8.4.39
- postcss-value-parser: 4.2.0
-
- postcss-convert-values@6.1.0(postcss@8.4.39):
- dependencies:
- browserslist: 4.23.1
- postcss: 8.4.39
- postcss-value-parser: 4.2.0
-
- postcss-discard-comments@6.0.2(postcss@8.4.39):
- dependencies:
- postcss: 8.4.39
-
- postcss-discard-duplicates@6.0.3(postcss@8.4.39):
- dependencies:
- postcss: 8.4.39
-
- postcss-discard-empty@6.0.3(postcss@8.4.39):
- dependencies:
- postcss: 8.4.39
-
- postcss-discard-overridden@6.0.2(postcss@8.4.39):
- dependencies:
- postcss: 8.4.39
-
postcss-import@15.1.0(postcss@8.4.38):
dependencies:
postcss: 8.4.38
@@ -13909,44 +13546,6 @@ snapshots:
transitivePeerDependencies:
- typescript
- postcss-merge-longhand@6.0.5(postcss@8.4.39):
- dependencies:
- postcss: 8.4.39
- postcss-value-parser: 4.2.0
- stylehacks: 6.1.1(postcss@8.4.39)
-
- postcss-merge-rules@6.1.1(postcss@8.4.39):
- dependencies:
- browserslist: 4.23.1
- caniuse-api: 3.0.0
- cssnano-utils: 4.0.2(postcss@8.4.39)
- postcss: 8.4.39
- postcss-selector-parser: 6.0.16
-
- postcss-minify-font-values@6.1.0(postcss@8.4.39):
- dependencies:
- postcss: 8.4.39
- postcss-value-parser: 4.2.0
-
- postcss-minify-gradients@6.0.3(postcss@8.4.39):
- dependencies:
- colord: 2.9.3
- cssnano-utils: 4.0.2(postcss@8.4.39)
- postcss: 8.4.39
- postcss-value-parser: 4.2.0
-
- postcss-minify-params@6.1.0(postcss@8.4.39):
- dependencies:
- browserslist: 4.23.1
- cssnano-utils: 4.0.2(postcss@8.4.39)
- postcss: 8.4.39
- postcss-value-parser: 4.2.0
-
- postcss-minify-selectors@6.0.4(postcss@8.4.39):
- dependencies:
- postcss: 8.4.39
- postcss-selector-parser: 6.0.16
-
postcss-modules-extract-imports@3.1.0(postcss@8.4.39):
dependencies:
postcss: 8.4.39
@@ -13985,88 +13584,15 @@ snapshots:
postcss: 8.4.38
postcss-selector-parser: 6.0.16
- postcss-normalize-charset@6.0.2(postcss@8.4.39):
- dependencies:
- postcss: 8.4.39
-
- postcss-normalize-display-values@6.0.2(postcss@8.4.39):
- dependencies:
- postcss: 8.4.39
- postcss-value-parser: 4.2.0
-
- postcss-normalize-positions@6.0.2(postcss@8.4.39):
- dependencies:
- postcss: 8.4.39
- postcss-value-parser: 4.2.0
-
- postcss-normalize-repeat-style@6.0.2(postcss@8.4.39):
- dependencies:
- postcss: 8.4.39
- postcss-value-parser: 4.2.0
-
- postcss-normalize-string@6.0.2(postcss@8.4.39):
- dependencies:
- postcss: 8.4.39
- postcss-value-parser: 4.2.0
-
- postcss-normalize-timing-functions@6.0.2(postcss@8.4.39):
- dependencies:
- postcss: 8.4.39
- postcss-value-parser: 4.2.0
-
- postcss-normalize-unicode@6.1.0(postcss@8.4.39):
- dependencies:
- browserslist: 4.23.1
- postcss: 8.4.39
- postcss-value-parser: 4.2.0
-
- postcss-normalize-url@6.0.2(postcss@8.4.39):
- dependencies:
- postcss: 8.4.39
- postcss-value-parser: 4.2.0
-
- postcss-normalize-whitespace@6.0.2(postcss@8.4.39):
- dependencies:
- postcss: 8.4.39
- postcss-value-parser: 4.2.0
-
- postcss-ordered-values@6.0.2(postcss@8.4.39):
- dependencies:
- cssnano-utils: 4.0.2(postcss@8.4.39)
- postcss: 8.4.39
- postcss-value-parser: 4.2.0
-
postcss-pxtorem@6.1.0(postcss@8.4.39):
dependencies:
postcss: 8.4.39
- postcss-reduce-initial@6.1.0(postcss@8.4.39):
- dependencies:
- browserslist: 4.23.1
- caniuse-api: 3.0.0
- postcss: 8.4.39
-
- postcss-reduce-transforms@6.0.2(postcss@8.4.39):
- dependencies:
- postcss: 8.4.39
- postcss-value-parser: 4.2.0
-
postcss-selector-parser@6.0.16:
dependencies:
cssesc: 3.0.0
util-deprecate: 1.0.2
- postcss-svgo@6.0.3(postcss@8.4.39):
- dependencies:
- postcss: 8.4.39
- postcss-value-parser: 4.2.0
- svgo: 3.3.2
-
- postcss-unique-selectors@6.0.4(postcss@8.4.39):
- dependencies:
- postcss: 8.4.39
- postcss-selector-parser: 6.0.16
-
postcss-value-parser@4.2.0: {}
postcss@7.0.39:
@@ -14908,12 +14434,6 @@ snapshots:
stylis: 4.3.2
tslib: 2.6.2
- stylehacks@6.1.1(postcss@8.4.39):
- dependencies:
- browserslist: 4.23.1
- postcss: 8.4.39
- postcss-selector-parser: 6.0.16
-
stylis@4.3.2: {}
stylus-loader@8.1.0(@rspack/core@1.0.0-alpha.0(@swc/helpers@0.5.11))(stylus@0.63.0)(webpack@5.92.1):
diff --git a/website/docs/en/guide/basic/css-usage.mdx b/website/docs/en/guide/basic/css-usage.mdx
index 8e0c80ac9e..221b18c113 100644
--- a/website/docs/en/guide/basic/css-usage.mdx
+++ b/website/docs/en/guide/basic/css-usage.mdx
@@ -65,7 +65,7 @@ During the production build, Rsbuild compresses static assets such as CSS and JS
Rsbuild by default uses the built-in `LightningCssMinimizerRspackPlugin` plugin from Rspack to automatically compress CSS code during production builds.
-You can customize the CSS minimizer by using the [CSS Minimizer plugin](/plugins/list/plugin-css-minimizer) to switch to cssnano or other tools for CSS compression.
+You can customize the CSS minimizer by using the [@rsbuild/plugin-css-minimizer](https://github.com/rspack-contrib/rsbuild-plugin-css-minimizer) to switch to cssnano or other tools for CSS compression.
## Inline CSS Files
diff --git a/website/docs/en/plugins/list/_meta.json b/website/docs/en/plugins/list/_meta.json
index 2e7ad5eff9..8c0bc94b02 100644
--- a/website/docs/en/plugins/list/_meta.json
+++ b/website/docs/en/plugins/list/_meta.json
@@ -21,7 +21,6 @@
"plugin-source-build",
"plugin-styled-components",
"plugin-check-syntax",
- "plugin-css-minimizer",
"plugin-typed-css-modules",
"plugin-rem",
"plugin-umd"
diff --git a/website/docs/en/plugins/list/index.mdx b/website/docs/en/plugins/list/index.mdx
index f8b4b9f55d..31a746332a 100644
--- a/website/docs/en/plugins/list/index.mdx
+++ b/website/docs/en/plugins/list/index.mdx
@@ -67,7 +67,7 @@ The following are common framework-agnostic plugins:
- [Lightning CSS Plugin](/plugins/list/plugin-lightningcss): Used to use LightningCSS as CSS transformer and minimizer.
- [Source Build Plugin](/plugins/list/plugin-source-build): This plugin is designed for the monorepo scenario. It supports referencing source code from other subdirectories and performs build and hot update.
- [Check Syntax Plugin](/plugins/list/plugin-check-syntax): Used to analyze the syntax compatibility of artifacts, to see if there are any advanced syntaxes that may cause compatibility issues.
-- [CSS Minimizer Plugin](/plugins/list/plugin-css-minimizer): Used to customize CSS minimizer, switch to [cssnano](https://github.com/cssnano/cssnano) or other tools for CSS compression.
+- [CSS Minimizer Plugin](https://github.com/rspack-contrib/rsbuild-plugin-css-minimizer): Used to customize CSS minimizer, switch to [cssnano](https://github.com/cssnano/cssnano) or other tools for CSS compression.
- [Typed CSS Modules Plugin](/plugins/list/plugin-typed-css-modules): Used to generate TypeScript declaration file for CSS Modules.
- [Pug Plugin](https://github.com/rspack-contrib/rsbuild-plugin-pug): Provides support for the Pug template engine.
- [Rem Plugin](/plugins/list/plugin-rem): Implements the rem adaptive layout for mobile pages.
@@ -76,7 +76,7 @@ The following are common framework-agnostic plugins:
- [TOML Plugin](https://github.com/rspack-contrib/rsbuild-plugin-toml): Import TOML files and convert them into JavaScript objects.
:::tip
-You can find the source code of all official plugins in the [web-infra-dev/rsbuild](https://github.com/web-infra-dev/rsbuild) repository.
+You can find the source code of all official plugins in [web-infra-dev/rsbuild](https://github.com/web-infra-dev/rsbuild) and [rspack-contrib](https://github.com/rspack-contrib).
:::
## Community Plugins
diff --git a/website/docs/en/plugins/list/plugin-css-minimizer.mdx b/website/docs/en/plugins/list/plugin-css-minimizer.mdx
deleted file mode 100644
index f9e4a90e5f..0000000000
--- a/website/docs/en/plugins/list/plugin-css-minimizer.mdx
+++ /dev/null
@@ -1,106 +0,0 @@
-# CSS Minimizer Plugin
-
-import { SourceCode } from 'rspress/theme';
-
-
-
-The Rsbuild by default uses the SWC built-in by Rspack to minify CSS code. You can customize the CSS minimizer by using the CSS Minimizer plugin and switch to [cssnano](https://github.com/cssnano/cssnano) or other tools for CSS minification.
-
-The CSS Minimizer plugin internally integrates [css-minimizer-webpack-plugin](https://github.com/webpack-contrib/css-minimizer-webpack-plugin).
-
-:::tip About cssnano
-[cssnano](https://github.com/cssnano/cssnano) is a tool for optimizing and minifying CSS files. It reduces the size of CSS files by removing unused rules, merging similar rules, removing comments and whitespace, and converting length units, among other techniques, to improve the loading speed of websites.
-:::
-
-## Quick Start
-
-### Install Plugin
-
-You can install the plugin using the following command:
-
-import { PackageManagerTabs } from '@theme';
-
-
-
-### Register Plugin
-
-You can register the plugin in the `rsbuild.config.ts` file:
-
-```ts title="rsbuild.config.ts"
-import { pluginCssMinimizer } from '@rsbuild/plugin-css-minimizer';
-
-export default {
- plugins: [pluginCssMinimizer()],
-};
-```
-
-## Options
-
-### pluginOptions
-
-Used to customize the options of css-minimizer-webpack-plugin.
-
-The value of `pluginOptions` will be merged with the default options inside the plugin using `Object.assign` and then passed to the css-minimizer-webpack-plugin. You can refer to the [README documentation](https://github.com/webpack-contrib/css-minimizer-webpack-plugin) of css-minimizer-webpack-plugin to explore all available options.
-
-- **Type:** `Object | Function | undefined`
-- **Default:**
-
-```ts
-const defaultOptions = {
- minify: CssMinimizerWebpackPlugin.cssnanoMinify,
- minimizerOptions: {
- preset: [
- 'default',
- {
- mergeLonghand: false,
- },
- ],
- },
-};
-```
-
-- **Example 1:** modify the `preset` configuration of [cssnano](https://github.com/cssnano/cssnano).
-
-```js
-pluginCssMinimizer({
- pluginOptions: {
- minimizerOptions: {
- preset: require.resolve('cssnano-preset-simple'),
- },
- },
-});
-```
-
-- **Example 2:** pass a function to modify the default options.
-
-```js
-pluginCssMinimizer({
- pluginOptions: (options) => {
- options.minimizerOptions = {
- preset: require.resolve('cssnano-preset-simple'),
- };
- },
-});
-```
-
-- **Example 3:** Switch to other tools for CSS minification
-
-```js
-import {
- pluginCssMinimizer,
- CssMinimizerWebpackPlugin,
-} from '@rsbuild/plugin-css-minimizer';
-
-pluginCssMinimizer({
- pluginOptions: {
- minify: CssMinimizerWebpackPlugin.cleanCssMinify,
- minimizerOptions: {
- level: {
- 1: {
- roundingPrecision: "all=3,px=5",
- },
- },
- },
- },
-}),
-```
diff --git a/website/docs/zh/guide/basic/css-usage.mdx b/website/docs/zh/guide/basic/css-usage.mdx
index 2caf618685..cc24aa7c6f 100644
--- a/website/docs/zh/guide/basic/css-usage.mdx
+++ b/website/docs/zh/guide/basic/css-usage.mdx
@@ -65,7 +65,7 @@ Rsbuild 通过插件来支持社区流行的 CSS 预处理器,包括 Sass、Le
Rsbuild 默认使用 Rspack 内置的 `LightningCssMinimizerRspackPlugin` 插件,在生产环境构建时自动压缩 CSS 代码。
-你可以通过 [CSS Minimizer 插件](/plugins/list/plugin-css-minimizer) 来自定义 CSS 压缩工具,切换到 cssnano 或其他工具进行 CSS 压缩。
+你可以通过 [@rsbuild/plugin-css-minimizer](https://github.com/rspack-contrib/rsbuild-plugin-css-minimizer) 来自定义 CSS 压缩工具,切换到 cssnano 或其他工具进行 CSS 压缩。
## 内联 CSS 文件
diff --git a/website/docs/zh/plugins/list/_meta.json b/website/docs/zh/plugins/list/_meta.json
index 2e7ad5eff9..8c0bc94b02 100644
--- a/website/docs/zh/plugins/list/_meta.json
+++ b/website/docs/zh/plugins/list/_meta.json
@@ -21,7 +21,6 @@
"plugin-source-build",
"plugin-styled-components",
"plugin-check-syntax",
- "plugin-css-minimizer",
"plugin-typed-css-modules",
"plugin-rem",
"plugin-umd"
diff --git a/website/docs/zh/plugins/list/index.mdx b/website/docs/zh/plugins/list/index.mdx
index 4edc0a8bd0..af2901fb2d 100644
--- a/website/docs/zh/plugins/list/index.mdx
+++ b/website/docs/zh/plugins/list/index.mdx
@@ -67,7 +67,7 @@
- [Lightning CSS 插件](/plugins/list/plugin-lightningcss):用于使用 LightningCSS 作为 CSS 的转译和压缩工具。
- [Source Build 插件](/plugins/list/plugin-source-build):用于 monorepo 场景,支持引用其他子目录的源代码,并完成构建和热更新。
- [Check Syntax 插件](/plugins/list/plugin-check-syntax):用于分析产物的语法兼容性,判断是否存在导致兼容性问题的高级语法。
-- [CSS Minimizer 插件](/plugins/list/plugin-css-minimizer):用于自定义 CSS 压缩工具,切换到 [cssnano](https://github.com/cssnano/cssnano) 或其他工具进行 CSS 压缩。
+- [CSS Minimizer 插件](https://github.com/rspack-contrib/rsbuild-plugin-css-minimizer):用于自定义 CSS 压缩工具,切换到 [cssnano](https://github.com/cssnano/cssnano) 或其他工具进行 CSS 压缩。
- [Typed CSS Modules 插件](/plugins/list/plugin-typed-css-modules):用于为项目中的 CSS Modules 文件生成类型声明文件。
- [Pug 插件](https://github.com/rspack-contrib/rsbuild-plugin-pug):提供对 Pug 模板引擎的支持。
- [Rem 插件](/plugins/list/plugin-rem):用于实现移动端页面的 rem 自适应布局。
@@ -76,7 +76,7 @@
- [TOML 插件](https://github.com/rspack-contrib/rsbuild-plugin-toml):引用 TOML 文件,并将其转换为 JavaScript 对象。
:::tip
-你可以在 [web-infra-dev/rsbuild](https://github.com/web-infra-dev/rsbuild) 仓库中找到所有官方插件的源代码。
+你可以在 [web-infra-dev/rsbuild](https://github.com/web-infra-dev/rsbuild) 和 [rspack-contrib](https://github.com/rspack-contrib) 中找到这些插件的源代码。
:::
## 社区插件
diff --git a/website/docs/zh/plugins/list/plugin-css-minimizer.mdx b/website/docs/zh/plugins/list/plugin-css-minimizer.mdx
deleted file mode 100644
index 508e4a1cba..0000000000
--- a/website/docs/zh/plugins/list/plugin-css-minimizer.mdx
+++ /dev/null
@@ -1,106 +0,0 @@
-# CSS Minimizer 插件
-
-import { SourceCode } from 'rspress/theme';
-
-
-
-Rsbuild 默认使用 Rspack 内置的 SWC 来压缩 CSS 代码,你可以通过 CSS Minimizer 插件来自定义 CSS 压缩工具,切换到 [cssnano](https://github.com/cssnano/cssnano) 或其他工具进行 CSS 压缩。
-
-CSS Minimizer 插件内部集成了 [css-minimizer-webpack-plugin](https://github.com/webpack-contrib/css-minimizer-webpack-plugin)。
-
-:::tip 关于 cssnano
-[cssnano](https://github.com/cssnano/cssnano) 是一个用于优化和压缩 CSS 文件的工具。它通过删除未使用的规则、合并相同的规则、移除注释和空白符以及转换长度单位等方式来减小 CSS 文件的体积,从而提升网站的加载速度。
-:::
-
-## 快速开始
-
-### 安装插件
-
-你可以通过如下的命令安装插件:
-
-import { PackageManagerTabs } from '@theme';
-
-
-
-### 注册插件
-
-你可以在 `rsbuild.config.ts` 文件中注册插件:
-
-```ts title="rsbuild.config.ts"
-import { pluginCssMinimizer } from '@rsbuild/plugin-css-minimizer';
-
-export default {
- plugins: [pluginCssMinimizer()],
-};
-```
-
-## 选项
-
-### pluginOptions
-
-用于自定义 css-minimizer-webpack-plugin 的选项。
-
-`pluginOptions` 的值会与插件内部的默认选项通过 `Object.assign` 合并,然后透传给 css-minimizer-webpack-plugin 插件。你可以阅读 css-minimizer-webpack-plugin 的 [README 文档](https://github.com/webpack-contrib/css-minimizer-webpack-plugin) 来了解所有可用的选项。
-
-- **类型:** `Object | Function | undefined`
-- **默认值:**
-
-```ts
-const defaultOptions = {
- minify: CssMinimizerWebpackPlugin.cssnanoMinify,
- minimizerOptions: {
- preset: [
- 'default',
- {
- mergeLonghand: false,
- },
- ],
- },
-};
-```
-
-- **示例一:** 修改 [cssnano](https://github.com/cssnano/cssnano) 的 `preset` 配置。
-
-```js
-pluginCssMinimizer({
- pluginOptions: {
- minimizerOptions: {
- preset: require.resolve('cssnano-preset-simple'),
- },
- },
-});
-```
-
-- **示例二:** 传入一个函数来修改默认选项。
-
-```js
-pluginCssMinimizer({
- pluginOptions: (options) => {
- options.minimizerOptions = {
- preset: require.resolve('cssnano-preset-simple'),
- };
- },
-});
-```
-
-- **示例三:** 切换到其他工具进行 CSS 压缩
-
-```js
-import {
- pluginCssMinimizer,
- CssMinimizerWebpackPlugin,
-} from '@rsbuild/plugin-css-minimizer';
-
-pluginCssMinimizer({
- pluginOptions: {
- minify: CssMinimizerWebpackPlugin.cleanCssMinify,
- minimizerOptions: {
- level: {
- 1: {
- roundingPrecision: "all=3,px=5",
- },
- },
- },
- },
-}),
-```