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']
}
相关推荐
Captaincc14 分钟前
这款堪称编程界的“自动驾驶”利器,集开发、调试、提 PR、联调、部署于一体
前端·ai 编程
我是小七呦24 分钟前
万字血书!TypeScript 完全指南
前端·typescript
simple丶27 分钟前
Webpack 基础配置与懒加载
前端·架构
simple丶31 分钟前
领域模型 模板引擎 dashboard应用列表及配置接口实现
前端·架构
冰夏之夜影33 分钟前
【css酷炫效果】纯css实现液体按钮效果
前端·css·tensorflow
33 分钟前
告别手写Codable!Swift宏库ZCMacro让序列化更轻松
前端
摘笑1 小时前
vite 机制
前端
Channing Lewis1 小时前
API 返回的PDF是一串字符,如何转换为PDF文档
前端·python·pdf
海盗强1 小时前
css3有哪些新属性
前端·css·css3
Cutey9162 小时前
前端如何实现菜单的权限控制(RBAC)
前端·javascript·设计模式