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']
}
相关推荐
星空椰20 分钟前
JavaScript 基础入门:从零开始掌握变量与数据类型
开发语言·前端·javascript·ecmascript
千寻简26 分钟前
一个让 Claude Code 顺手很多的状态栏插件:claude-hud
前端·后端
掘金者阿豪27 分钟前
数据库安全第一关:用户密码存储与认证机制的深度拆解
java·前端·后端
MgArcher34 分钟前
Python高级特性:sorted() 排序完全指南
前端·后端
MgArcher35 分钟前
Python高级特性:返回函数与闭包完全指南
前端·后端
HelloReader35 分钟前
QML 最佳实践写出高质量、可维护、高性能的代码(十二)
前端
HelloReader35 分钟前
Qt Quick Controls 全览控件、弹窗、导航与样式定制(十一)
前端
意法半导体STM3239 分钟前
【官方原创】STM32 USBx Host HID standardalone移植示例 LAT1449
开发语言·前端·stm32·单片机·嵌入式硬件
竹林81840 分钟前
用wagmi v2构建DeFi前端:从连接钱包到读取合约数据的完整实战与避坑指南
前端·javascript
over69740 分钟前
面试官视角:TypeScript Pick 工具类型深度解析与手写实现
前端·面试