webpack:css-loader和style-loader关系

测试

当我们webpack 的 rules 啥都没配置的时候

js 复制代码
const path = require('path');

module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'index.js',
    path: path.resolve(__dirname, 'dist')
  },
  module: {
    rules: [
    ]
  }
};

我们在 js 中导入了 css,发现报错,因为 webpack 打包模块的时候只认识 js,并不知道什么是 css,所以需要 loader 出场了。

接下来我们配置 css-loader

js 复制代码
rules: [
  {
    test:/\.css$/,
    use:['css-loader']
  }
]

发现正常打包了

这时在 dist 的 index.js 中也能看到打包的 css 代码,但是打开页面文字并没有变红。

因为 css-loader 只管打包,不管挂载,那么我们再加上 style-loader

js 复制代码
rules: [
  {
    test:/\.css$/,
    use:['style-loader','css-loader']
  }
]

打包后刷新页面发现变红了,并且 css 挂载了 style 里

总结

  • css-loader:使 webpack 可以识别 import 'xx.css' 并打包成 webpack 标准模块
  • style-loader:使用<style>将css-loader内部样式注入到我们的HTML页面,所以一般不单独使用,要依赖 css-loader 解析后的模块

所以一般 less、scss 要加上三个 loader

js 复制代码
{
  test:/\.less$/,
  use:['style-loader','css-loader','less-loader']
}
相关推荐
朱 欢 庆12 小时前
云服务器附件备份到本机内网服务器
运维·服务器·前端·经验分享
支支დ17 小时前
VO by Vercel 前端特定优势:为什么它是构建 AI 应用的新范式
前端·人工智能
香芋芋圆17 小时前
AI 冲击内卷之下,普通前端如何破局?WebGIS—— 低门槛突围赛道
前端·javascript·人工智能·学习·职场发展
INS_KF18 小时前
【编程笔记】成员函数中两个 const 的区别(const Data &getData() const;)
前端·javascript·笔记
宿67418 小时前
vue3-async
前端·javascript·vue.js
YXWik619 小时前
记录前端请求接口在浏览器请求响应的Preview和Response展示的一样的问题
前端
2501_9289962219 小时前
GPT-4o换DeepSeek迁移成本多少?中科热备解析API聚合平台技术账本
前端·数据库·人工智能
东风破_19 小时前
从跨域到 WebSocket:前端跨域方案、SSE 与双向实时通信详解
前端·后端
原则猫19 小时前
TS 类型工具
前端
excel20 小时前
Nuxt + Twin CSS 中宽度超过屏幕时底部出现空白的原因与解决方案
前端·javascript