webpack如何自定义一个loader?

现代前端在开发过程中时常都会使用到webpack,用来对代码进行模块化打包。通常情况下,我们都是直接使用webpack的配置和别人写好的loader。如果自己要实现一个loader,需要怎么做?

1. 什么是loader?

webpack是基于node的模块化打包工具,它本身也只能处理JS和JSON文件,没有处理CSS、图片等其他格式文件的能力。loader就相当于是一个翻译机,将这些文件翻译成webpack能处理的格式。换句话说,loader赋予了webpack处理其他文件的能力。

2. loader的使用

module.exports = {
   
  //...
  module: {
   
    rules: [
      {
   
        test: /\.scss$/,
        use: ['style-loader', 'css-loader', {
   
			loader: 'sass-loader',
			options: {
   
				//...
			}
		}]
      }
    ]
  }
};
  • 职责单一: 每个loader只完成一种转换,如sass-loader只讲sass转换为css。
  • 链式调用: 第一个loader接收到的是资源文件的内容,后续loader都是接收到的上一个loader返回的处理结果。
  • 调用顺序: 在loader中存在一个pitch属性,调用顺序是style-loader(pitch)、css-loader(pitch)、sass-loader(pitch)、sass-loader、css-loader、style-loader。如果其中一个pitch返回了值,则停止后续调用。简单点说就是先从左往右执行pitch,然后从右往左执行loader。

3. 一个基础的loader

上面写了一堆乱七糟八的东西,看起来着实枯燥。现在就写一个一讲自定义loader就会写的例子,就和写代码必先写hello world一样的东西。

一个用于替换的loader。替换原来JS代码中的NAME。
webpack.config.js

const path = require('path');
// 先看看怎么用
module
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值