webpack需通过css-loader将css转为js模块,并配合style-loader或minicssextractplugin.loader生效;配置须注意loader顺序、匹配规则及环境适配,否则import css会报错或样式不显示。

Webpack 本身不识别 CSS 文件,必须靠 css-loader 把它转成 JS 模块,再配合 style-loader 或 MiniCssExtractPlugin.loader 让样式真正生效。光装 css-loader 不够,配置顺序、匹配规则和环境适配都得对,否则 import './index.css' 会直接报错或样式不显示。
基础配置:让 import CSS 不报错
这是最简可用的起点,解决“模块解析失败”问题:
- 安装依赖:
npm install --save-dev css-loader style-loader - 在
webpack.config.js的module.rules中添加:
注意执行顺序:数组从右往左,css-loader 先解析 @import 和 url(),输出 JS 模块;style-loader 再把内容注入 <style></style> 标签。
CSS Modules:避免全局样式污染
适合组件级样式,类名自动哈希化,防止命名冲突:
- 推荐按文件名区分:只对
.module.css启用模块化 - 配置两个 rule,互不干扰:
JS 中这样用:import styles from './Button.module.css'; element.className = styles.btn;
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
生产环境提取 CSS 文件
开发时用 style-loader 方便热更新,但上线后不能把样式塞进 JS —— 会导致 FOUC、无法缓存、CDN 分发困难:
- 安装插件:
npm install --save-dev mini-css-extract-plugin - 配置 rule(仅用于生产):
并在 plugins 中加入:new MiniCssExtractPlugin({ filename: '[name].[contenthash:8].css' })
处理 url() 和 @import 的关键参数
当 CSS 里有 background: url(./icon.png) 或 @import './reset.css' 时,这些路径默认会被转为 require()。但若用了 PostCSS 或 Sass,就得告诉 css-loader:“@import 的文件也要走一遍前面的 loader”:
-
importLoaders: 1表示@import的 CSS 会先经过紧邻前一个 loader(比如postcss-loader) -
url: false可关闭所有url()解析(极少用) -
url: { filter: (url) => !url.startsWith('http') }可跳过外链图片
典型组合示例:
{ loader: 'css-loader', options: { importLoaders: 1, modules: { auto: /\.module\.css$/i } } }Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










