以下是一个自定义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相关推荐

  1. webpack自定义loader并发布到npm

    一.官网对loader的解释: 1.loader 是导出为一个函数的 node 模块.该函数在 loader 转换资源的时候调用.给定的函数将调用 loader API,并通过 this 上下文访问. ...

  2. webpack自定义loader

    创建自己的Loader 创建自己的Loader Loader是用于对模块的源代码进行转换(处理),css-loader.style-loader.babel-loader等. 如何自定义自己的Load ...

  3. Webpack自定义Loader和Plugin方法

    手写Loader Loader 本质上是导出函数的 JavaScript 模块,而该模块导出的函数被称为 Normal Loader,在开发 Loader时,我们可以在导出的函数上添加一个 pitch ...

  4. vue-cli Webpack之Loader原理及自定义Loader

    文章目录 1. Loader 分类与执行顺序 1.1 Loader 分类 1.2 Loader 执行顺序 1.3 使用Loader方式 1.3.1 内联 Loader 2. 开发 Loader 步骤 ...

  5. Webpack之Loader原理及自定义Loader

    文章目录 1. Loader 分类与执行顺序 1.1 Loader 分类 1.2 Loader 执行顺序 1.3 使用Loader方式 1.3.1 内联 Loader 2. 开发 Loader 步骤 ...

  6. webpack loader解析及自定义loader

    自定义实现webpack loader加载模块,解析指定的类型文件 loader loader是一个导出为函数的node模块,可通过this访问上下文. 特点: loader单一职责,只负责解决单一的 ...

  7. webpack的loader与plugin原理

    文章目录 loader原理 loader执行顺序 loader使用方式 loader的实现 参数 同步loader 异步loader Raw loader Pitching loader loader ...

  8. webpack之 loader

    开篇 loader不难,loader不难,loader不难.默念三遍,然后开始. loader 简介 loader 这个东西配置 webpack 的时候经常用到,刚开始会让人觉得有一种神秘感. 看了文 ...

  9. Unity puerts 自定义Loader和调试和ab包的注意点

    输出ab包 他会把你创建的ab包都打包 也就是在这里的创建的都打包 string assetBundleDirectory = Path.Combine(Application.streamingAs ...

最新文章

  1. DeepMind训练AI玩足球,风骚走位比中国男足都强(狗头)
  2. Wex5铛铛开发环境搭建步骤
  3. 谷歌技术三宝之MapReduce
  4. 网络设备的注册与初始化
  5. Codeforces Round #587 (Div. 3) C. White Sheet 思维
  6. python中的continue和break
  7. 2007年网络安全技术发展分析
  8. 博科300 java配置,博科300 光纤交换机如何设置为SSH登录?
  9. 【代码】求二叉树叶子结点的个数、递归方式
  10. 软件维护类型的基础知识
  11. 面试时应该如何进行自我介绍呢
  12. 视频号运营的6个小技巧你都知道哪些?国仁楠哥
  13. 天津大学大学计算机基础成绩查询,天津大学《大学计算机基础1》课程教学大纲.PDF...
  14. 选择“正激”还是“反激”?这份宝典请收好~
  15. 基于STM32的DMX512开发笔记
  16. 【hive】数据倾斜-大表小表join优化mapjoin
  17. html 加载pdf文件内容不显示不出来,pdf.js首次加载pdf文件时找不到pdf文件,刷新后才能出现pdf文件...
  18. 给所有想爱、正在爱、失去爱的人(转)
  19. 计算机仿真三个基本活动,计算机仿真-Read.ppt
  20. 支付宝APP支付部分代码

热门文章

  1. 设计模式之工厂模式(披萨店案例)
  2. SEO中影响网站排名的49个因素(完整版)
  3. 领英辅助工具—领英精灵都有什么功能
  4. SQL Server数据库基础知识汇总
  5. 史上最全的画册制作流程—画册设计价格
  6. git Bash代码密匙公匙配置
  7. 5G学习:BWP和coreset的那点事儿
  8. Python3遍历指定文件夹下所有文件及文件夹
  9. excel中如何设置下拉框,并且不同值显示不同颜色
  10. Android Studio 与 Tomcat 交互案例(新)