加载器(Loaders):

loader 是对应用程序中资源文件进行转换。它们是(运行在 Node.js 中的)函数,可以将资源文件作为参数的来源,然后返回新的资源文件

示例:

例如,你可以使用 loader 告诉 webpack 加载 CSS 文件,或者将 TypeScript 转为 JavaScript。首先,安装相对应的 loader

其次,配置 webpack.config.js,对每个 .css 文件使用 css-loader,然后类似地,对每个 .ts 文件使用 ts-loader

配置:

在你的应用程序中,有三种方式使用 loader:
- 通过配置
- 在 require 语句中显示使用
- 通过 CLI

通过 webpack.config.js:

module.rules 允许你在 webpack 配置中指定几个 loader
这是展示 loader 的一种简明的方式,并且有助于简洁代码,以及对每个相应的 loader 有一个完整的概述

通过 require:

可以在 require 语句(或 define, require.ensure, 等语句)中指定 loader。使用 ! 将资源中的 loader 分开。分开的每个部分都相对于当前目录解析

通过前置所有规则及使用 !,可以对应覆盖到配置中的任意 loader

可以给每个loader选项传递查询参数,就像在 web 中那样(?key=value&foo=bar)。也可以使用 JSON 对象(?{"key":"value","foo":"bar"})

通过 CLI:

可选项,你也可以通过 CLI 使用 loader

这会对 .jade 文件使用 jade-loader,对 .css 文件使用 style-loader 和 css-loader

Loader 特性:

  • loader 支持链式传递。能够对资源使用流水线(pipeline)。loader 链式地按照先后顺序进行编译。loader 链中的第一个 loader 返回值给下一个 loader。在最后一个 loader,返回 webpack 所预期的 JavaScript
  • loader 可以是同步或异步函数
  • loader 运行在 Node.js 中,并且能够执行任何可能的操作
  • loader 接收查询参数。用于 loader 间传递配置
  • loader 也能够使用 options 对象进行配置
  • 除了使用 package.json 常见的 main 属性,还可以将普通的 npm 模块导出为 loader,做法是在 package.json 里定义一个 loader 字段
  • 插件(plugin)可以为 loader 带来更多特性
  • loader 能够产生额外的任意文件

解析 Loader:

loader 遵循标准的模块解析。多数情况下,loader 将从模块路径(通常将模块路径认为是 npm install, node_modules)解析

如何编写模块?loader 模块需要导出为一个函数,并且使用 Node.js 兼容的 JavaScript 编写。在通常情况下,你会使用 npm 来管理 loader,但是你也可以将 loader 模块作为应用程序中的文件。

按照约定,loader 通常被命名为 XXX-loader,其中 XXX 是上下文的名称,例如 json-loader。

loader 的名称约定和优先搜索顺序,由 webpack 配置 API 中的 resolveLoader.moduleTemplates 定义。

Webpack基础之加载器相关推荐

  1. webpack 中的加载器简介||webpack 中加载器的基本使用——1. 打包处理 css 文件 2. 打包处理 less 文件 3.打包处理 scss 文件

    webpack 中的加载器 1. 通过 loader 打包非 js 模块 在实际开发过程中,webpack 默认只能打包处理以 .js 后缀名结尾的模块,其他非 .js 后缀名结尾的模块, webpa ...

  2. webpack中loader加载器(打包非js模块)

    通过loader打包非js模块 我这儿用VScode为编辑器 在实际开发过程中,webpack默认只能打包处理以.js后缀名结尾的模块,其他非. js后缀名结 尾的模块,webpack 默认处理不了, ...

  3. js css加载器,webpack的CSS加载器的使用

    什么是loader loader用于转换应用程序的资源文件,他们是运行在nodejs下的函数,使用参数来获取一个资源的来源并且返回一个新的来源(资源的位置),例如:你可以使用loader来告诉webp ...

  4. webpack中loader加载器配置postCss自动添加CSS兼容前缀

    配置postCSS自动添加css的兼容前缀 前言 在这里我使用VScode为编辑器 html文件中 <!DOCTYPE html> <html lang="en" ...

  5. 一文学会Webpack实用功能|加载器篇

    Webpack 资源模块加载 通过探索我们知道可以把css文件作为打包的入口,不过webpack的打包入口一般还是JavaScript, 因为他的打包入口从某种程度来说可以算是我们应用的运行入口. 而 ...

  6. 需要了解的常用Webpack插件配置-loader加载器

    我们都知道通过安装和配置第三方插件,可以使我们的webpack拓展更多的功能,虽然之后开发项目不需要我们自己去进行这些繁琐的配置,但是我们需要知道这些,在必要时我们可以去做出修改 比如我们在初识web ...

  7. webpack项目安装与加载器常出现问题

    项目名为webpack,直接报错,在package.json里面把名字修改 TypeError: this.getOptions is not a function版本过高,得安装低版本的 打包jqu ...

  8. webpack配置vue组件加载器

    前言 App.vue单文件组件代码 <template><div><h1>App根组件</h1></div> </template&g ...

  9. Vue 单文件组件||Vue 单文件组件的基本用法||webpack 中配置 vue 组件的加载器|| 在 webpack 项目中使用 vue

    Vue 单文件组件 传统组件的问题和解决方案 1. 问题 1. 全局定义的组件必须保证组件的名称不重复 2. 字符串模板缺乏语法高亮,在 HTML 有多行的时候,需要用到丑陋的 \ 3. 不支持 CS ...

最新文章

  1. Udacity机器人软件工程师课程笔记(十六)-机械臂仿真控制实例(其一)-Gazebo、RViz和Moveit!
  2. 解决ubuntu14.04下Qt 5.3.1下的QtCreator fcitx,ibus不能输入中文
  3. 农村生态是下一个十年的发力点
  4. LIVE 预告 | 南方科大张宇:神经网络可解释性综述
  5. python编程入门书-关于 Python 的经典入门书籍有哪些?
  6. 简述c#之sealed 修饰符
  7. zen3架构_全新Zen3架构,AMD发布最新Ryzen5000系列处理器
  8. 科大星云诗社动态20210305
  9. 阿里HBase高可用8年抗战回忆录
  10. 【MyBiatis框架】原生态Jdbc的弊端已经Mybatis简介
  11. Oracle-索引分裂研究
  12. js之iframe子页面与父页面通信
  13. 多线程中抛异常的这个面试题你会吗?
  14. dcs与plc与c语言的联系,PLC与和DCS系统通讯的实现
  15. librosa.stft的输出
  16. HBuilderX真机模拟uni-app项目 + 上架应用市场
  17. Squid 代理服务之反向代理服务器架构搭建
  18. 如何double你的能力
  19. win10 docker镜像导入导出
  20. 《python3网络爬虫开发实战》学习笔记:pc与安卓代理证书都安装好但是无法监听——记自己的踩坑路径

热门文章

  1. minio 授予永久访问权限_应对 iOS 14 权限管理 应用手把手教你打开“所有照片”权限...
  2. 2018计算机应用基础考试6,2018结构工程师《计算机应用基础》试题(6)
  3. html页面根据分辨率缩放,html2Canvas根据不同分辨率,生成pdf内容自适应
  4. java 上传远程图片,java上传图片到另一台服务器上,怎么解决
  5. WordPress在前台文章页添加后台编辑该文章按钮
  6. Linux设备驱动入门----globalmem字符设备驱动
  7. [react] 在React中如果去除生产环境上的sourcemap?
  8. 深入react技术栈(2):JSX语法
  9. React开发(139):react中onref
  10. react学习(54)--注意传递请求