Loaders

加载器是应用于模块源代码的转换。它们允许您在处理import或“加载” 文件时预处理文件。因此,加载器有点像其他构建工具中的“任务”,并提供了处理前端构建步骤的强大方法。加载器可以将文件从不同的语言(如TypeScript)转换为JavaScript或内联图像作为数据URL。加载器甚至允许您import直接从JavaScript模块执行CSS文件等操作!

例如,您可以使用加载器告诉webpack加载CSS文件或将TypeScript转换为JavaScript。要做到这一点,您首先要安装所需的加载器:

npm install --save-dev css-loader
npm install --save-dev ts-loader

然后指示webpack使用css-loaderfor each .css文件和ts-loader所有.ts文件:

webpack.config.js

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

module.rules允许您在webpack配置中指定多个加载器。这是显示加载器的简洁方法,有助于维护干净的代码。它还为您提供每个相应装载机的完整概述。

从右到左评估/执行装载程序。在下面的示例中,执行从sass-loader开始,继续使用css-loader,最后以style-loader结束。有关装载机订单的更多信息,请参阅“装载机功能”

module.exports = {
module: {
rules: [
{
test: /\.css$/,
use: [
{ loader: 'style-loader' },
{
loader: 'css-loader',
options: {
modules: true
}
},
{ loader: 'sass-loader' }
]
}
]
}
};

可以在import语句中指定加载器,或任何等效的“导入”方法。将资源与资源分开!。每个部分都相对于当前目录进行解析。

import Styles from 'style-loader!css-loader?modules!./styles.css';

可以通过为整个规则添加前缀来覆盖配置中的任何加载器!

可以使用查询参数(例如?key=value&foo=bar,或JSON对象)传递选项,例如?{"key":"value","foo":"bar"}

module.rules尽可能使用,因为这将减少源代码中的样板,并允许您在出现问题时更快地调试或定位加载程序。

您还可以通过CLI使用加载器:

webpack --module-bind jade-loader --module-bind 'css=style-loader!css-loader'

这使用jade-loader.jade文件,以及style-loadercss-loader.css文件。

解决装载机

装载机遵循标准模块分辨率。在大多数情况下,它会从被载入模块路径(想想npm installnode_modules)。

加载器模块应该导出一个函数并用Node.js兼容的JavaScript编写。它们通常使用npm进行管理,但您也可以将自定义加载器作为应用程序中的文件。按照惯例,装载机通常被命名xxx-loader(例如json-loader)。请参阅“如何编写加载程序?”了解更多信息。

对webpack的初步研究5的更多相关文章

  1. 对webpack的初步研究8

    模块 编辑文档 在模块化编程中,开发人员将程序分解为称为模块的离散功能块. 每个模块的表面积小于完整程序,使验证,调试和测试变得微不足道.编写良好的模块提供了可靠的抽象和封装边界,因此每个模块在整个应 ...

  2. 对webpack的初步研究7

    Configuration 您可能已经注意到很少有webpack配置看起来完全相同.这是因为webpack的配置文件是导出对象的JavaScript文件.然后,webpack根据其定义的属性处理此对象 ...

  3. 对webpack的初步研究6

    Plugins 插件是webpack 的支柱.webpack本身构建在您在webpack配置中使用的相同插件系统上! 它们也是这样做的目的别的,一个装载机无法做到的. Anatomy webpack  ...

  4. 对webpack的初步研究4

    Mode string module.exports = { mode: 'production' }; webpack --mode=production The following string ...

  5. 对webpack的初步研究3

    Output配置output配置选项告诉webpack如何将编译后的文件写入磁盘.请注意,虽然可以有多个entry点,但只output指定了一个配置. A filename to use for th ...

  6. 对webpack的初步研究2

    Entry Points 如“ 入门”中所述,有多种方法可以entry在webpack配置中定义属性.我们会告诉你,你的方法可以配置的entry属性,除了解释为什么它可能对你有用 Single Ent ...

  7. 对webpack的初步研究1

    一.概念: 1.webpack的核心是用于现代JavaScript应用程序的静态模块捆绑器.当webpack处理您的应用程序时,它会在内部构建一个依赖关系图,它映射您的项目所需的每个模块并生成一个或多 ...

  8. iOS多线程的初步研究(六)

    iOS多线程的初步研究(六) iOS平台提供更高级的并发(异步)调用接口,让你可以集中精力去设计需完成的任务代码,避免去写与程序逻辑无关的线程生成.运行等管理代码.当然实质上是这些接口隐含生成线程和管 ...

  9. iOS多线程的初步研究3

    iOS多线程的初步研究(三) 弄清楚NSRunLoop确实需要花时间,这个类的概念和模式似乎是Apple的平台独有(iOS+MacOSX),很难彻底搞懂(iOS没开源,呜呜). 官网的解释是说run ...

随机推荐

  1. COUNT(*) vs COUNT(col)

    w https://www.percona.com/blog/2007/04/10/count-vs-countcol/

  2. bash中前后移动一个单词和删除单词的快捷键

    bash中一个很重要的快捷键,就是向后删除一个单词: ctrl+w=ctrl+W 一个字符一个字符的移动是: ctrl+f, ctrl+b 但是, 一个单词一个单词的移动是: (但是, 这个用得比较少 ...

  3. python-笔记(六)模块操作以及常用模块简介

    模块.包 什么是模块? 模块实质上就是一个python文件,它是用来组织代码的,意思是说把python代码写到里面,文件名就是模块的名称,例如:model.py model就是模块名称. 什么是包? ...

  4. ROW/COW 快照技术原理解析

    NOTE:ROW/COW 最新更新请跳转<再谈 COW.ROW 快照技术> 目录 目录 快照与备份的区别 Snapshot 快照技术 全量快照 增量快照 COW 写时拷贝快照技术 ROW ...

  5. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_08 转换流_4_OutputStreamWriter介绍&代码实现

    父类是Write 需要抛出异常 声明为它的父类IO异常也是可以的 不指定 默认就是utf-8格式的 两个汉字 6个字节 GBK格式 打开文件的位置用文本打开

  6. 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第4节 ArrayList集合_15-ArrayList集合存储基本数据

    泛型必须是引用类型,不能是基本类型 里面的泛型用int就会报错 集合里面保存的都是地址值.基本类型的数据没有地址值,所以你想要往里面存int是不可以的 基本类型可以往ArrayList里面放,但是必须 ...

  7. UDP 首部的格式

    <图解TCP/IP>6.6 UDP首部的格式 源端口号:表示发送端端口号,字段长16位.该字段是可选项,有时可能不会设置源端口号.没有源端口号的时候该字段的设置为0.可用于不需要返回的通信 ...

  8. Linux操作系统(六)_文件系统结构

    linux只有一个文件树,整个文件系统是以一个树根"/"为起点的 所有的文件和外部设备都以文件的形式挂在上面,linux发行版本的根目录大都是以下结构: /bin /sbin /b ...

  9. VLAN 基础设置及Aceess接口

    实验内容 本实验模拟企业网络场景.公司内网是一一个大的局域网,二层交换机S1放置在一楼,在一楼办公的部门有IT部和人事部;二层交换机S2放置在二楼,在二楼办公的部门有市场部和研发部.由于交换机组成的是 ...

  10. using 用法拾忆

    using 用法主要包括三种: 1.引用外部命名空间以及外部命名空间中定义的类型(指令) 2.创建命名空间别名,避免因名称相同造成的冲突(指令) 3.定义资源使用范围,在范围结束后释放资源对象(语句) ...