webpack loaders 简介

webpack 通过 loaders 解析 require 语句引入的文件。常用的 loader 有:

loader 的使用方法是在 webpack.config.js 配置,或者针对特定文件使用。

const path = require('path');
module.exports = {
    module: {
        loaders: [
            {
                test: /\.js$/,
                include: [
                    path.resolve(__dirname, './src')
                ],
                loaders: [
                    'babel-loader'
                ]
            }
        ]
    }
}

配置中几个字段的说明如下:

  • test: 用来判断文件是否使用本 loader 的正则,通常根据文件后缀区分
  • include: 包含的文件路径,数组形式的,wepback 只会在这些目录下找需要处理的文件
  • loaders: 数组的形式来表示符合条件的文件需要使用哪些 loader 进行处理
  • loader: 字符串的形式串联起来多个 loader

loader 可以串联使用,比如 less 文件需要先使用 less-loader,再使用 css-loader,最后使用 style-loader

在配置中 loaders 的书写顺序是:

const path = require('path');
module.exports = {
    module: {
        loaders: [
            {
                test: /\.less$/,
                include: [
                    path.resolve(__dirname, './src')
                ],
                loaders: [
                    'style-loader',
                    'css-loader',
                    'less-loader'
                ]
            }
        ]
    }
}

loader 中的参数可以通过在 loader 名称后追加,比如在 css-loader 中开启 css module 的写法是 css-loader?modules&importLoaders=1&localIdentName=[name]__[local]__[hash:base64:5]!

针对特定文件使用 loader 需要修改代码中的 require 语句。比如对特定的 css 文件不使用 css module。

import '!!style-loader!css-loader!../css/index.css';
require('!!style-loader!css-loader!../css/index.css');

在 require 前添加 !! 用来禁用所有在 config 中配置的 loader。

在 1.x 的 wepback 中可以省略 loader 名称中后面的 -loader,但是 2.x 中不能省略。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容