diff --git a/crates/rspack_plugin_css/src/parser_and_generator/mod.rs b/crates/rspack_plugin_css/src/parser_and_generator/mod.rs index ec7aff3b70c9..35ce8587e7e9 100644 --- a/crates/rspack_plugin_css/src/parser_and_generator/mod.rs +++ b/crates/rspack_plugin_css/src/parser_and_generator/mod.rs @@ -13,9 +13,7 @@ use rspack_core::{ ParserAndGenerator, SourceType, TemplateContext, }; use rspack_core::{ModuleDependency, RuntimeGlobals}; -use rspack_error::{ - internal_error, Diagnostic, IntoTWithDiagnosticArray, Result, TWithDiagnosticArray, -}; +use rspack_error::{internal_error, IntoTWithDiagnosticArray, Result, TWithDiagnosticArray}; use rustc_hash::FxHashSet; use sugar_path::SugarPath; use swc_core::{ @@ -43,16 +41,9 @@ pub(crate) static CSS_MODULE_SOURCE_TYPE_LIST: &[SourceType; 2] = pub(crate) static CSS_MODULE_EXPORTS_ONLY_SOURCE_TYPE_LIST: &[SourceType; 1] = &[SourceType::JavaScript]; -/// Compat for @rspack/postcss-loader css modules -#[derive(serde::Deserialize)] -struct RspackPostcssModules { - rspack_postcss_modules: String, -} - #[derive(Debug)] pub struct CssParserAndGenerator { pub config: CssConfig, - pub meta: Option, pub exports: Option>>, } @@ -80,14 +71,7 @@ impl ParserAndGenerator for CssParserAndGenerator { fn size(&self, module: &dyn Module, source_type: &SourceType) -> f64 { match source_type { - SourceType::JavaScript => { - // meta + `module.exports = ...` - self - .meta - .as_ref() - .map(|item| item.len() as f64 + 17.0) - .unwrap_or(0.0) - } + SourceType::JavaScript => 42.0, SourceType::Css => module.original_source().map_or(0, |source| source.size()) as f64, _ => unreachable!(), } @@ -96,7 +80,6 @@ impl ParserAndGenerator for CssParserAndGenerator { fn parse(&mut self, parse_context: ParseContext) -> Result> { let ParseContext { source, - additional_data, module_type, module_user_request, resource_data, @@ -206,13 +189,8 @@ impl ParserAndGenerator for CssParserAndGenerator { dependencies }; - self.meta = additional_data.and_then(|data| if data.is_empty() { None } else { Some(data) }); self.exports = locals; - if self.exports.is_some() && let Some(meta) = &self.meta && serde_json::from_str::(meta).is_ok() { - diagnostic.push(Diagnostic::warn("CSS Modules".to_string(), format!("file: {} is using `postcss.modules` and `builtins.css.modules` to process css modules at the same time, rspack will use `builtins.css.modules`'s result.", resource_data.resource_path.display()), 0, 0)); - } - let new_source = if let Some(source_map) = source_map { SourceMapSource::new(SourceMapSourceOptions { value: code, @@ -291,11 +269,7 @@ impl ParserAndGenerator for CssParserAndGenerator { generate_context.compilation, &self.config.modules.locals_convention, )? - } else if let Some(meta) = &self.meta - && let Ok(meta) = serde_json::from_str::(meta) - { - format!("module.exports = {};\n", meta.rspack_postcss_modules) - } else if generate_context.compilation.options.dev_server.hot { + } else if generate_context.compilation.options.dev_server.hot { "module.hot.accept();".to_string() } else { "".to_string() diff --git a/crates/rspack_plugin_css/src/plugin/impl_plugin_for_css_plugin.rs b/crates/rspack_plugin_css/src/plugin/impl_plugin_for_css_plugin.rs index dc41686cb869..d209a64d9e61 100644 --- a/crates/rspack_plugin_css/src/plugin/impl_plugin_for_css_plugin.rs +++ b/crates/rspack_plugin_css/src/plugin/impl_plugin_for_css_plugin.rs @@ -117,7 +117,6 @@ impl Plugin for CssPlugin { let builder = move || { Box::new(CssParserAndGenerator { config: config.clone(), - meta: None, exports: None, }) as Box }; diff --git a/packages/rspack/tests/configCases/postcss/basic/index.css b/packages/rspack/tests/configCases/postcss/basic/index.css deleted file mode 100644 index cad5a084c087..000000000000 --- a/packages/rspack/tests/configCases/postcss/basic/index.css +++ /dev/null @@ -1,3 +0,0 @@ -.body { - color: red; -} diff --git a/packages/rspack/tests/configCases/postcss/basic/index.js b/packages/rspack/tests/configCases/postcss/basic/index.js deleted file mode 100644 index 1e8fbb5ad62d..000000000000 --- a/packages/rspack/tests/configCases/postcss/basic/index.js +++ /dev/null @@ -1,8 +0,0 @@ -it("basic", () => { - const css = require("./index.css"); - const style = require("./index.module.css"); - expect(css).toEqual({}); - expect(style).toEqual({ - body: "_body_toys1_1" - }); -}); diff --git a/packages/rspack/tests/configCases/postcss/basic/index.module.css b/packages/rspack/tests/configCases/postcss/basic/index.module.css deleted file mode 100644 index cad5a084c087..000000000000 --- a/packages/rspack/tests/configCases/postcss/basic/index.module.css +++ /dev/null @@ -1,3 +0,0 @@ -.body { - color: red; -} diff --git a/packages/rspack/tests/configCases/postcss/basic/webpack.config.js b/packages/rspack/tests/configCases/postcss/basic/webpack.config.js deleted file mode 100644 index ac047a16486a..000000000000 --- a/packages/rspack/tests/configCases/postcss/basic/webpack.config.js +++ /dev/null @@ -1,28 +0,0 @@ -module.exports = { - module: { - defaultRules: [], - rules: [ - { - test: /\.module\.css$/, - use: [ - { - loader: "@rspack/postcss-loader", - options: { - modules: true - } - } - ], - type: "css" - }, - { - test: /\.css$/, - use: [ - { - loader: "@rspack/postcss-loader" - } - ], - type: "css" - } - ] - } -}; diff --git a/packages/rspack/tests/configCases/postcss/css-modules-with-tree-shaking/a.js b/packages/rspack/tests/configCases/postcss/css-modules-with-tree-shaking/a.js deleted file mode 100644 index e3dadd23a157..000000000000 --- a/packages/rspack/tests/configCases/postcss/css-modules-with-tree-shaking/a.js +++ /dev/null @@ -1,3 +0,0 @@ -export function a() {} - -export function b() {} diff --git a/packages/rspack/tests/configCases/postcss/css-modules-with-tree-shaking/index.css b/packages/rspack/tests/configCases/postcss/css-modules-with-tree-shaking/index.css deleted file mode 100644 index cad5a084c087..000000000000 --- a/packages/rspack/tests/configCases/postcss/css-modules-with-tree-shaking/index.css +++ /dev/null @@ -1,3 +0,0 @@ -.body { - color: red; -} diff --git a/packages/rspack/tests/configCases/postcss/css-modules-with-tree-shaking/index.js b/packages/rspack/tests/configCases/postcss/css-modules-with-tree-shaking/index.js deleted file mode 100644 index 9e74d7a2b4c8..000000000000 --- a/packages/rspack/tests/configCases/postcss/css-modules-with-tree-shaking/index.js +++ /dev/null @@ -1,6 +0,0 @@ -import { a } from "./a"; -import * as c from "./index.module.css"; -it("basic", () => { - a; - c; -}); diff --git a/packages/rspack/tests/configCases/postcss/css-modules-with-tree-shaking/index.module.css b/packages/rspack/tests/configCases/postcss/css-modules-with-tree-shaking/index.module.css deleted file mode 100644 index cad5a084c087..000000000000 --- a/packages/rspack/tests/configCases/postcss/css-modules-with-tree-shaking/index.module.css +++ /dev/null @@ -1,3 +0,0 @@ -.body { - color: red; -} diff --git a/packages/rspack/tests/configCases/postcss/css-modules-with-tree-shaking/webpack.config.js b/packages/rspack/tests/configCases/postcss/css-modules-with-tree-shaking/webpack.config.js deleted file mode 100644 index 737db02be083..000000000000 --- a/packages/rspack/tests/configCases/postcss/css-modules-with-tree-shaking/webpack.config.js +++ /dev/null @@ -1,29 +0,0 @@ -module.exports = { - builtins: { - treeShaking: true, - sideEffects: true - }, - module: { - rules: [ - { - test: /\.module\.css$/, - use: [ - { - loader: "@rspack/postcss-loader", - options: { - modules: true - } - } - ] - }, - { - test: /\.css$/, - use: [ - { - loader: "@rspack/postcss-loader" - } - ] - } - ] - } -}; diff --git a/packages/rspack/tests/configCases/postcss/modules-config/auto-false.module.css b/packages/rspack/tests/configCases/postcss/modules-config/auto-false.module.css deleted file mode 100644 index 24e4c5dc0936..000000000000 --- a/packages/rspack/tests/configCases/postcss/modules-config/auto-false.module.css +++ /dev/null @@ -1,3 +0,0 @@ -.auto-false { - color: powderblue; -} diff --git a/packages/rspack/tests/configCases/postcss/modules-config/auto-function.css b/packages/rspack/tests/configCases/postcss/modules-config/auto-function.css deleted file mode 100644 index f55bfa84c049..000000000000 --- a/packages/rspack/tests/configCases/postcss/modules-config/auto-function.css +++ /dev/null @@ -1,3 +0,0 @@ -.auto-function { - color: powderblue; -} diff --git a/packages/rspack/tests/configCases/postcss/modules-config/auto-regex.css b/packages/rspack/tests/configCases/postcss/modules-config/auto-regex.css deleted file mode 100644 index ea473838665d..000000000000 --- a/packages/rspack/tests/configCases/postcss/modules-config/auto-regex.css +++ /dev/null @@ -1,3 +0,0 @@ -.auto-regex { - color: powderblue; -} diff --git a/packages/rspack/tests/configCases/postcss/modules-config/auto-true.module.css b/packages/rspack/tests/configCases/postcss/modules-config/auto-true.module.css deleted file mode 100644 index e1635920ab04..000000000000 --- a/packages/rspack/tests/configCases/postcss/modules-config/auto-true.module.css +++ /dev/null @@ -1,3 +0,0 @@ -.auto-true { - color: powderblue; -} diff --git a/packages/rspack/tests/configCases/postcss/modules-config/generateScopedName.module.css b/packages/rspack/tests/configCases/postcss/modules-config/generateScopedName.module.css deleted file mode 100644 index 503aa0400412..000000000000 --- a/packages/rspack/tests/configCases/postcss/modules-config/generateScopedName.module.css +++ /dev/null @@ -1,3 +0,0 @@ -.generate-scoped-name { - color: powderblue; -} diff --git a/packages/rspack/tests/configCases/postcss/modules-config/index.js b/packages/rspack/tests/configCases/postcss/modules-config/index.js deleted file mode 100644 index f803dac3dc72..000000000000 --- a/packages/rspack/tests/configCases/postcss/modules-config/index.js +++ /dev/null @@ -1,45 +0,0 @@ -it("modules-true should use css modules", () => { - const css = require("./modules-true.css"); - expect(css).toEqual({ "module-true": "_module-true_3vgpi_1" }); -}); - -it("modules-false should not use css modules", () => { - const css = require("./modules-false.module.css"); - expect(css).toEqual({}); -}); - -it("auto-true should use css modules", () => { - const css = require("./auto-true.module.css"); - expect(css).toEqual({ "auto-true": "_auto-true_mtxdv_1" }); -}); - -it("auto-false should not use css modules", () => { - const css = require("./auto-false.module.css"); - expect(css).toEqual({}); -}); - -it("auto-regex should use css modules", () => { - const css = require("./auto-regex.css"); - expect(css).toEqual({ "auto-regex": "_auto-regex_1j4lx_1" }); -}); - -it("auto-function should use css modules", () => { - const css = require("./auto-function.css"); - expect(css).toEqual({ "auto-function": "_auto-function_b0amx_1" }); -}); - -it("generateScopedName should use right name for css modules", () => { - const css = require("./generateScopedName.module.css"); - expect(css).toEqual({ - "generate-scoped-name": - "generateScopedName-module__generate-scoped-name___xw790" - }); -}); - -it("localsConvention should use right convention for css modules", () => { - const css = require("./localsConvention.module.css"); - expect(css).toEqual({ - "locals-convention": "_locals-convention_1eiju_1", - localsConvention: "_locals-convention_1eiju_1" - }); -}); diff --git a/packages/rspack/tests/configCases/postcss/modules-config/localsConvention.module.css b/packages/rspack/tests/configCases/postcss/modules-config/localsConvention.module.css deleted file mode 100644 index 36b1e9e31192..000000000000 --- a/packages/rspack/tests/configCases/postcss/modules-config/localsConvention.module.css +++ /dev/null @@ -1,3 +0,0 @@ -.locals-convention { - color: powderblue; -} diff --git a/packages/rspack/tests/configCases/postcss/modules-config/modules-false.module.css b/packages/rspack/tests/configCases/postcss/modules-config/modules-false.module.css deleted file mode 100644 index 32302808dcc0..000000000000 --- a/packages/rspack/tests/configCases/postcss/modules-config/modules-false.module.css +++ /dev/null @@ -1,3 +0,0 @@ -.module-false { - color: powderblue; -} diff --git a/packages/rspack/tests/configCases/postcss/modules-config/modules-true.css b/packages/rspack/tests/configCases/postcss/modules-config/modules-true.css deleted file mode 100644 index c000537495c8..000000000000 --- a/packages/rspack/tests/configCases/postcss/modules-config/modules-true.css +++ /dev/null @@ -1,3 +0,0 @@ -.module-true { - color: powderblue; -} diff --git a/packages/rspack/tests/configCases/postcss/modules-config/webpack.config.js b/packages/rspack/tests/configCases/postcss/modules-config/webpack.config.js deleted file mode 100644 index 8a9fa19f1367..000000000000 --- a/packages/rspack/tests/configCases/postcss/modules-config/webpack.config.js +++ /dev/null @@ -1,120 +0,0 @@ -const path = require("path"); -const resolve = filename => path.resolve(__dirname, filename); - -module.exports = { - module: { - defaultRules: [], - rules: [ - { - test: resolve("modules-true.css"), - use: [ - { - loader: "@rspack/postcss-loader", - options: { - modules: true - } - } - ], - type: "css" - }, - { - test: resolve("modules-false.module.css"), - use: [ - { - loader: "@rspack/postcss-loader", - options: { - modules: false - } - } - ], - type: "css" - }, - { - test: resolve("auto-true.module.css"), - use: [ - { - loader: "@rspack/postcss-loader", - options: { - modules: { - auto: true - } - } - } - ], - type: "css" - }, - { - test: resolve("auto-false.module.css"), - use: [ - { - loader: "@rspack/postcss-loader", - options: { - modules: { - auto: false - } - } - } - ], - type: "css" - }, - { - test: resolve("auto-regex.css"), - use: [ - { - loader: "@rspack/postcss-loader", - options: { - modules: { - auto: /auto-regex.css$/ - } - } - } - ], - type: "css" - }, - { - test: resolve("auto-function.css"), - use: [ - { - loader: "@rspack/postcss-loader", - options: { - modules: { - auto(p) { - return p.endsWith("auto-function.css"); - } - } - } - } - ], - type: "css" - }, - { - test: resolve("generateScopedName.module.css"), - use: [ - { - loader: "@rspack/postcss-loader", - options: { - modules: { - generateScopedName: "[name]__[local]___[hash:base64:5]" - } - } - } - ], - type: "css" - }, - { - test: resolve("localsConvention.module.css"), - use: [ - { - loader: "@rspack/postcss-loader", - options: { - modules: { - localsConvention: "camelCase" - } - } - } - ], - type: "css" - } - ] - } -}; diff --git a/packages/rspack/tests/configCases/postcss/with-previous-source-map/index.js b/packages/rspack/tests/configCases/postcss/with-previous-source-map/index.js deleted file mode 100644 index c6efefb86a9e..000000000000 --- a/packages/rspack/tests/configCases/postcss/with-previous-source-map/index.js +++ /dev/null @@ -1,15 +0,0 @@ -const fs = require("fs"); -const path = require("path"); - -it("basic", () => { - require("./index.scss"); - const sourceMap = fs.readFileSync(__dirname + "/main.css.map", "utf-8"); - const scss = fs.readFileSync( - path.resolve(__dirname, "../index.scss"), - "utf-8" - ); - const map = JSON.parse(sourceMap); - expect(map.sources).toContain("./index.scss"); - expect(map.file).toEqual("main.css"); - expect(map.sourcesContent).toEqual([scss]); -}); diff --git a/packages/rspack/tests/configCases/postcss/with-previous-source-map/index.scss b/packages/rspack/tests/configCases/postcss/with-previous-source-map/index.scss deleted file mode 100644 index c08c343e4ff1..000000000000 --- a/packages/rspack/tests/configCases/postcss/with-previous-source-map/index.scss +++ /dev/null @@ -1,5 +0,0 @@ -$width: 42px; - -.app { - width: $width; -} diff --git a/packages/rspack/tests/configCases/postcss/with-previous-source-map/webpack.config.js b/packages/rspack/tests/configCases/postcss/with-previous-source-map/webpack.config.js deleted file mode 100644 index 6eec6a3c582f..000000000000 --- a/packages/rspack/tests/configCases/postcss/with-previous-source-map/webpack.config.js +++ /dev/null @@ -1,20 +0,0 @@ -module.exports = { - devtool: "source-map", - module: { - rules: [ - { - test: /\.scss$/, - use: [ - { - loader: "@rspack/postcss-loader", - options: { - pxToRem: true - } - }, - { loader: "sass-loader" } - ], - type: "css" - } - ] - } -}; diff --git a/packages/rspack/tests/configCases/postcss/with-source-map/index.css b/packages/rspack/tests/configCases/postcss/with-source-map/index.css deleted file mode 100644 index 16d5c0b7dd71..000000000000 --- a/packages/rspack/tests/configCases/postcss/with-source-map/index.css +++ /dev/null @@ -1,3 +0,0 @@ -.body { - width: 10px; -} diff --git a/packages/rspack/tests/configCases/postcss/with-source-map/index.js b/packages/rspack/tests/configCases/postcss/with-source-map/index.js deleted file mode 100644 index 66564beb52f8..000000000000 --- a/packages/rspack/tests/configCases/postcss/with-source-map/index.js +++ /dev/null @@ -1,12 +0,0 @@ -const fs = require("fs"); -const path = require("path"); - -it("basic", () => { - require("./index.css"); - const sourceMap = fs.readFileSync(__dirname + "/main.css.map", "utf-8"); - const css = fs.readFileSync(path.resolve(__dirname, "../index.css"), "utf-8"); - const map = JSON.parse(sourceMap); - expect(map.sources).toContain("./index.css"); - expect(map.file).toEqual("main.css"); - expect(map.sourcesContent).toEqual([css]); -}); diff --git a/packages/rspack/tests/configCases/postcss/with-source-map/webpack.config.js b/packages/rspack/tests/configCases/postcss/with-source-map/webpack.config.js deleted file mode 100644 index 17eecf670e80..000000000000 --- a/packages/rspack/tests/configCases/postcss/with-source-map/webpack.config.js +++ /dev/null @@ -1,18 +0,0 @@ -module.exports = { - devtool: "source-map", - module: { - rules: [ - { - test: /\.css$/, - use: [ - { - loader: "@rspack/postcss-loader", - options: { - pxToRem: true - } - } - ] - } - ] - } -};