webpack:自定义loader
以下是一个自定义loader replace-loader
,实现一个类似模板引擎变量替换的简单功能
文件目录
.
├── dist
│ └── index.js # 打包结果
├── loaders
│ └── replace-loader.js # 自定义loader
├── src
│ └── index.js # 要打包的文件入口
├── package.json # 依赖配置
└── webpack.config.js # 打包配置
package.json
{"name": "loader-demo","version": "1.0.0","description": "a webpack loader demo","scripts": {"build": "webpack"},"devDependencies": {"loader-utils": "^2.0.0","webpack": "^5.47.0","webpack-cli": "^4.7.2"}
}
webpack.config.js
'use strict';const path = require('path');module.exports = {// 打包入口entry: {index: './src/index.js',},// 指定输出地址及打包出来的文件名output: {path: path.join(__dirname, 'dist'),filename: '[name].js',},// Loader路径resolveLoader: {modules: ['node_modules', './loaders'],},module: {rules: [{test: /.js$/,use: {loader: 'replace-loader',// 传递参数options: {name: 'Tom',},},},],},// 开发环境mode: 'production',
};
loaders/replace-loader.js
const loaderUtils = require('loader-utils');module.exports = function (source) {// 获取参数let options = loaderUtils.getOptions(this);for (let [key, value] of Object.entries(options)) {source = source.replace(`{{${key}}}`, value);}return source;
};
src/index.js
console.log('hi {{name}}');
指定打包命令
$ npm run build
dist/index.js
console.log("hi Tom");
参考
面试官:请实现一个Sass-Loader
webpack:自定义loader相关推荐
- webpack自定义loader并发布到npm
一.官网对loader的解释: 1.loader 是导出为一个函数的 node 模块.该函数在 loader 转换资源的时候调用.给定的函数将调用 loader API,并通过 this 上下文访问. ...
- webpack自定义loader
创建自己的Loader 创建自己的Loader Loader是用于对模块的源代码进行转换(处理),css-loader.style-loader.babel-loader等. 如何自定义自己的Load ...
- Webpack自定义Loader和Plugin方法
手写Loader Loader 本质上是导出函数的 JavaScript 模块,而该模块导出的函数被称为 Normal Loader,在开发 Loader时,我们可以在导出的函数上添加一个 pitch ...
- vue-cli Webpack之Loader原理及自定义Loader
文章目录 1. Loader 分类与执行顺序 1.1 Loader 分类 1.2 Loader 执行顺序 1.3 使用Loader方式 1.3.1 内联 Loader 2. 开发 Loader 步骤 ...
- Webpack之Loader原理及自定义Loader
文章目录 1. Loader 分类与执行顺序 1.1 Loader 分类 1.2 Loader 执行顺序 1.3 使用Loader方式 1.3.1 内联 Loader 2. 开发 Loader 步骤 ...
- webpack loader解析及自定义loader
自定义实现webpack loader加载模块,解析指定的类型文件 loader loader是一个导出为函数的node模块,可通过this访问上下文. 特点: loader单一职责,只负责解决单一的 ...
- webpack的loader与plugin原理
文章目录 loader原理 loader执行顺序 loader使用方式 loader的实现 参数 同步loader 异步loader Raw loader Pitching loader loader ...
- webpack之 loader
开篇 loader不难,loader不难,loader不难.默念三遍,然后开始. loader 简介 loader 这个东西配置 webpack 的时候经常用到,刚开始会让人觉得有一种神秘感. 看了文 ...
- Unity puerts 自定义Loader和调试和ab包的注意点
输出ab包 他会把你创建的ab包都打包 也就是在这里的创建的都打包 string assetBundleDirectory = Path.Combine(Application.streamingAs ...
最新文章
- 给GridView增加求和行
- java线程主要状态及转换_Java线程状态转换及控制
- 脸红是因为缺乏乙醛分解酶导致的酒精中毒
- 【Linux】一步一步学Linux——write命令(236)
- Opencv一维直方图的绘制
- AI时代的交换机什么样?华为CloudEngine 16800告诉你!
- 建筑与计算机技术,建筑设计中常用的计算机技术与注意点
- win 10配置安装iis
- python 行为驱动_什么是行为驱动的Python?
- APP推广有效果,APP地推要以用户需求为核心
- 【effective c++笔记】条款01 :视c++为一个语言联邦
- 合并多个js,css文件的方法 - 在服务端合并和压缩JavaScript和CSS文件
- java数据库查询类
- 我的五年百度博客文章列表
- 微信公众号查后端服务器IP,微信公众号平台接口开发 获取微信服务器IP地址方法解析...
- 003-Java技术体系
- 虚拟机运行python_虚的解释|虚的意思|汉典“虚”字的基本解释
- 支付宝付款弹窗 被浏览器拦截
- Java多线程 生产者-消费者问题示例
- 黑洞(black hole)