【每日一题】webpack的几组loader

前端印记

共 2890字,需浏览 6分钟

 · 2021-09-17

人生苦短,总需要一点仪式感。比如学前端~

css-loader 和 style-loader

file-loader

url-loader将静态资源文件(图片)打包成base64地址

css-loader:处理 css 文件

处理 css 文件,会对文件中的 @importurl() 进行解析,就像 js 解析 import/require() 一样。

TIPS: 需要webpack@5.0及以上版本

更多:NPM(https://www.npmjs.com/package/css-loader)

style-loader:将 CSS 插入到 DOM 中

把 js 中 import './style.css' 等导入的样式文件代码,打包到 js 文件中。

运行 js 文件时,将样式自动插入到HTML的<style></style>标签中。

推荐和css-loader一起使用。

更多:NPM(https://www.npmjs.com/package/style-loader)

webpack.config.js

module.exports = {
  module: {
    rules: [
      {
        test/\.css$/i,
        use: ["style-loader""css-loader"],
      },
    ],
  },
};

file-loader 和 url-loader

file-loader:返回图片url

是将文件上的import/require()解析为url(图片的),并将该文件发送到输出目录。

比如:

import img from './file.png';

这将导出file.png文件(如果指定了选项,则使用指定的命名约定)到输出目录中,并返回文件的公共URI。

更多:NPM(https://www.npmjs.com/package/file-loader)

url-loader:

可以通过 limit 参数对图片分情况处理:

当limit为“数字/数字字符串”、且图片体积小于 limit设置的大小时(单位为byte),图片会被处理成 base64URL

图片体积大于等于 limit 时会自动调用 file-loader(默认的)对图片进行处理,同时所有的查询参数都会传递给file-loader。

如果不想用file-loader可以设置fallback参数。

module.exports = {
  module: {
    rules: [
      {
        test/\.(png|jpg|gif)$/i,
        use: [
          {
            loader'url-loader',
            options: {
              limit8192// '8192'
              fallbackrequire.resolve('responsive-loader'),
            },
          },
        ],
      },
    ],
  },
};

更多:NPM(https://www.npmjs.com/package/url-loader)

url-loader与file-loader

url-loader 封装了 file-loader,但 url-loader 并不依赖于 file-loader。

url-loader的工作方式类似于file-loader,但如果文件小于字节限制,则可以返回DataURL。


END
愿你历尽千帆,归来仍是少年。


让我们一起携手同走前端路!

长按下图识别二维码 关注公众号回复【加群】即可


● 工作中常见页面布局的n种实现方法

● 三栏响应式布局(左右固宽中间自适应)的5种方法

● 两栏自适应布局的n种实现方法汇总

● 工作中常见的两栏布局案例及分析

● 垂直居中布局的一百种实现方式

● 常用九宫格布局的几大方法汇总

● 为什么操作DOM会影响WEB应用的性能?

● 移动端滚动穿透的6种解决方案

● Vue + TypeScript 踩坑总结




浏览 16
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报