webpack loader使用的安装配置

 更新时间:2023年07月27日 09:29:38   作者:知否  
这篇文章主要为大家介绍了webpack loader使用的安装配置详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

引言

本节我们来学习 webpack 中 loader 加载器的使用,那么什么是 loader 呢。从本质上来说,loader 就是一个 Node.js 模块,在 webpack 的定义中,loader 导出一个函数,loader 会在转换源模块的时候调用该函数。

webpack 本身依然是只能处理 JS 文件的,但是通过一系列的 loader ,就可以处理其他文件啦。例如 Less 和 Sass,以前我们编译这些 CSS 预处理器,需要使用 gulp 进行编译,而显示可以通过 webpack 中的 loader 加载器来实现。

常见loader

webpack 中有一系列的 loader,在实际项目中,我们会根据不同的需求使用到不同的 loader。例如 webpack 中的一些常见 loader 如下所示:

  • css-loader : 用于处理 css 文件,使得能在 js 文件中引入使用。
  • style-loader : 用于将 css 文件注入到 index.html 中的 <style> 标签上。
  • less-loader:处理 less 代码。
  • sass-loader: 处理 sass 代码。
  • postcss-loader:用 postcss 来处理 CSS代码。
  • babel-loader:用 babel 来转换 ES6 文件到 ES5。
  • file-loader:打包图片,打包字体图标。
  • url-loader:和 file-loader 类似,但是当文件小于设定的 limit 时,可以返回一个 DataUrl(提升网页性能)。
  • html-withimg-loader:打包 HTML 文件中的图片。
  • eslint-loader:用于检查常见的 JavaScript 代码错误,也可以进行"代码规范"检查。

loader的安装和配置

我们可以在 webpack.config.js 配置文件中配置 loader,可以在 module.rules 中指定一个或多个 loader

通过配置loader 的两个属性来实现:

  • test 属性:用来标识出应该被对应的 loader 进行转换的某个或多个文件。
  • use 属性:表示转换时要用哪个 loader

示例:

例如默认情况下 webpack 只能打包 JS 文件,不能识别其他例如 CSS、Less、image等类型的文件,那么如果我们想要打包 CSS 样式文件,可以在 webpack 中使用 loader 加载器,可以将一种文件转换为另一种文件,将webpack不能识别的其它类型文件转换为 webpack 可识别 JS 类型文件。

首先需要安装 style-loader 和 css-loader ,安装命令如下所示:

npm install css-loader style-loader --save-dev

命令执行成功后,这两个 loader 会自动添加到 package.json 的依赖中,如下所示:

"devDependencies": {
    "css-loader": "^3.6.0",
    "style-loader": "^1.2.1",
    "webpack": "^4.43.0",
    "webpack-dev-server": "^3.11.0"
  }

然后在 webpack.config.js 中配置 loader,在 module 属性的 rule 属性中配置 loader 规则:

module:{
    rules:[{
        test:/.css$/,
        use:['style-loader','css-loader']
    }]
}

这里表示匹配所有 .css 后缀结尾的文件,通过 style-loader 和 css-loader 加载器进行转换后再编译。

然后我们创建一个 xkd.css 文件,内容如下所示:

p{
    font-size: 12px;
    color: red;
}

并将 xkd.css 文件导入到 index.js 入口文件中:

document.write('你好,侠课岛!');
// 导入 CSS 文件
import "./xkd.css";

然后我们执行打包命令后会重新生成打包文件,会发现 xkd.css 文件也成功打包到 bundle.js 文件中。

这就是 loader 的基本使用流程,先安装loader,然后在配置文件中配置 loader ,最后再进行打包就可以啦。

loader 特性

  • loader 支持链式调用,链中的每个 loader 会将转换应用在已处理过的资源上。一组链式的 loader 将按照相反的顺序执行。链中的第一个 loader 将其结果传递给下一个 loader,依此类推。
  • loader 可以是同步的,也可以是异步的。
  • loader 运行在 Node.js 中,并且能够执行任何操作。
  • loader 也可以内联显示指定。
  • loader 可以通过 options 对象配置。

除了常见的通过 package.json 的 main 来将一个 npm 模块导出为 loader,还可以在 module.rules 中使用 loader 字段直接引用一个模块。

插件(plugin)可以为 loader 带来更多特性。

loader 能够产生额外的任意文件。

以上就是webpack loader使用的安装配置的详细内容,更多关于webpack loader安装配置的资料请关注脚本之家其它相关文章!

相关文章

  • 详解百度百科目录导航树小插件

    详解百度百科目录导航树小插件

    本文主要介绍了百度百科目录导航树小插件,具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • 微信开发 js实现tabs选项卡效果

    微信开发 js实现tabs选项卡效果

    这篇文章主要介绍了微信开发的学习笔记,js实现tabs选项卡效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • 小程序websocket心跳库(websocket-heartbeat-miniprogram)

    小程序websocket心跳库(websocket-heartbeat-miniprogram)

    这篇文章主要介绍了小程序websocket心跳库(websocket-heartbeat-miniprogram),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 教你3分钟利用原生js实现有进度监听的文件上传预览组件

    教你3分钟利用原生js实现有进度监听的文件上传预览组件

    这篇文章主要给大家介绍了关于如何3分钟利用原生js实现有进度监听的文件上传预览组件的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用js具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • JS检测是否可以访问公网服务器功能代码

    JS检测是否可以访问公网服务器功能代码

    检测AC是否放行成功,是否可以访问公网阿里云服务器。下面给大家分享JS检测是否可以访问公网服务器功能代码,需要的的朋友参考下吧
    2017-06-06
  • 浅谈js键盘事件全面控制

    浅谈js键盘事件全面控制

    下面小编就为大家带来一篇浅谈js键盘事件全面控制。小编觉得挺不错的,在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • JavaScript正则表达式简单实用实例

    JavaScript正则表达式简单实用实例

    这篇文章主要介绍了JavaScript正则表达式简单实用实例的相关资料,需要的朋友可以参考下
    2017-06-06
  • JavaScript中Async/Await通过同步的方式实现异步的方法介绍

    JavaScript中Async/Await通过同步的方式实现异步的方法介绍

    在JavaScript的异步编程中,我们经常使用回调函数、Promise和 Async/Await来解决异步操作的问题,Async/Await 又是Promise的语法糖,它的出现让异步编程变得更加直观和易于理解,本文将详细讲解Async/Await如何通过同步的方式实现异步
    2023-06-06
  • js实现圆形显示鼠标单击位置

    js实现圆形显示鼠标单击位置

    这篇文章主要为大家详细介绍了js实现圆形显示鼠标单击位置,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • Javascript中document.referrer隐藏来源的方法

    Javascript中document.referrer隐藏来源的方法

    这篇文章主要介绍了Javascript中document.referrer隐藏来源的方法,文中通过一个实例给大家介绍了实现的方法,有需要的朋友可以参考借鉴,下面来一起学习学习吧。
    2017-01-01

最新评论