webpack自定义loader--编译.tpl文件

article/2025/8/23 12:19:08

一、初始化一个项目

1、npm 初始化

npm init -y

2、安装需要的依赖

package.json文件:{"name": "webpack-plugin-test","version": "1.0.0","description": "","main": "main.js","scripts": {"build": "webpack","dev": "webpack-dev-server"},"keywords": [],"author": "","license": "ISC","devDependencies": {"@babel/core": "^7.18.6","babel-loader": "^8.2.5","html-webpack-plugin": "^5.5.0","webpack": "^5.73.0","webpack-cli": "^4.10.0","webpack-dev-server": "^4.9.3"}
}

3、新建文件tpl-loader,info.tpl,主入口文件main.js,webpack配置文件 webpack.config.js
在这里插入图片描述

二、编写info.tpl和主入口文件main.js文件,配置webpack

//  info.tpl文件:<div><h1>{{ name }}</h1><div>{{ age }}</div><div>{{ sex }}</div>
</div>//  main.js文件:import tpl from './info.tpl';const appDom = document.getElementById('app');appDom.innerHTML = tpl({name: '张三',age: 19,sex: '男'
})//  webpack.config.js文件:const { resolve } = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');module.exports = {mode:'development',devtool: 'eval-cheap-module-source-map',// 一般开发环境配置// development devtool: 'eval-cheap-module-source-map',// 一般情况生产环境配置// production devtool: 'cheap-module-source-map',entry:'./src/main.js',output:{filename: 'bundle.js',path:resolve(__dirname,'./dist')},resolveLoader: {modules: [ 'node_modules',resolve(__dirname,'loaders')]},module: {rules: [{test: /\.tpl$/,use: ['babel-loader',{loader: 'tpl-loader',options: {log: true}}]}]},plugins: [new HtmlWebpackPlugin({template:'./public/index.html',filename: 'index.html',minify:false})],devServer: {port: 9000}
}

三、自定义tpl-loader

// tpl-loader/index.js 文件:
function tpl(source){console.log(source);// 去掉所有空格source = source.replace(/\s+/g, '');return `export default (options) => {${compilerDom.toString()}return compilerDom('${source}',options);}`
}// 替换{{}}内部内容function compilerDom(source,replaceObj){const result = source.replace(/\{\{(.*?)\}\}/g,function(node,key){return replaceObj[key]})return result
}module.exports = tpl;

http://chatgpt.dhexx.cn/article/eNXcie0o.shtml

相关文章

EditPlus打开.tpl文件高亮显示代码

Tools——Preferences File——Settings&syntax 在HTML下增加&#xff1b;tpl

opencart html模板引擎,Opencart前台HTML、tpl文件的修改,附opencart文件目录

△问题和服务可以联系微信:yangtuo1991 △文章浏览次数: 20,008 很多时候有些同学有需要修改opencart前台的一小部分样式和文字,修改版权信息、顶部和底部文字等一系列的需求、这里介绍下前台的这些 tpl文件的位置和修改, 这些模板的主题文件都会在catalog/view/theme/ 下面…

goland中读取tpl文件

近来开始研究golang,使用国人做的beego框架做页面开发&#xff0c;以前用pycharm开发的&#xff0c;所以习惯了 就采用了goland&#xff0c;不过有个问题&#xff0c;就是在做页面模版时候采用tpl后缀&#xff0c;需要进行设置一下。&#xff08;mac系统&#xff0c;如果window…

让vscode编辑器支持smarty模版的TPL文件

如何让vscode支持 php的 smarty模版&#xff0c; 1、安装插件 该插件可以是的tpl格式的文件以html的方式显示&#xff0c;但是我在使用中发现安装此插件后电脑的cup会飙到很高&#xff0c;一会就会把vscode跑蹦掉。 2、其实我们就不用安装插件&#xff0c;直接在vscode中进行设…

软件安装管家

软件安装管家&#xff1a;&#xff08;更新时间&#xff1a;2021-11-04&#xff09; 原有安装管家链接失效&#xff0c;大家可通过下面CSDN博客链接进行下载。 https://blog.csdn.net/weixin_43729418/article/details/110307259 评价&#xff1a;常用UG、Core、Solidworks、…

HBuilder软件下载及安装教程

Hbuilder是由我国开发的一款开发网页的编辑器&#xff0c;使用起来及其方便容易上手&#xff0c;而且在Hbuilde全语法库中&#xff0c;可以清楚地看到对各个浏览器、各个版本的支持情况&#xff0c;集成了大量语法快&#xff0c;少敲多行代码&#xff0c;体验飞一般的感觉。 方…

GAMS软件安装

GAMS软件安装 背景1 软件准备2 软件安装3 总结 背景 GAMS软件的好处自不必说&#xff0c;“兼容了几乎所有的求解器&#xff0c;并且模型编写方便明了”&#xff0c;非常适合数学模型的编写和求解。因需要求解一个数学模型&#xff0c;所以进行了GAMS软件的学习和使用。 可能是…

安装软件Mimics过程记录

软件下载地址&#xff1a;https://pan.baidu.com/s/1swhl3kWyeQ3FW2t6OXSY6A 1.软件安装过程&#xff1a; 下载自己需要下载的版本&#xff0c;电脑是32位下32位的&#xff0c;若是64位的最好下64位 Research或者Medical版本选择一个即可 1解压之后双击 选择第一项 一路n…

戴尔计算机软件的安装,戴尔笔记本电脑安装软件没反应怎么办

戴尔笔记本电脑安装软件没反应怎么办&#xff1f;戴尔笔记本电脑一直在市场上保持高占有率&#xff0c;虽然性能很强大&#xff0c;但是电脑用久了难免会法还是能各种各样的任天野&#xff0c;那么接下来分享一个电脑安装软件没反应解决方法&#xff0c;一起来看看吧&#xff0…

Ubuntu下软件安装的方法(配图解)

Ubuntu下软件安装的方法 1.APP Store安装1.&#xff09;双击Ubuntu软件2.&#xff09;可以选择软件安装 2.Sudo apt-get install 安装法我们以安装git为例1.打开终端2.输入命令&#xff0c;回车3.输入命令“ git ”查看是否安装成功4.安装成功 3.deb软件包安装我们以安装网易云…

Labelme标注软件下载安装教程

文章目录 1. 下载anaconda软件2. Anaconda软件安装3. labelme安装 1. 下载anaconda软件 下载链接 根据自己电脑配置选择不同版本。 2. Anaconda软件安装 3. labelme安装 打开开始菜单&#xff0c;找到 Anaconda3&#xff0c;点击Anaconda prompt&#xff0c;在终端输入pip …

Dreamweaver软件介绍及下载安装

嗨&#xff0c;欢迎来到异星球&#xff0c;我是小怪同志。这篇文章主要讲解一下什么是Dreamweaver软件&#xff0c;以及软件下载和安装。请一起学习吧。 目录 一、初识DW 二、DW功能介绍 三、DW软件的下载 四、初次进DW软件界面 五、DW软件下载链接 一、初识DW Adobe Dr…

苹果计算机如何安装应用软件,Mac下如何安装软件?

Mac下如何安装软件&#xff1f;对于第一次用苹果电脑的用户来说&#xff0c;安装应用程序可能会有些困难&#xff0c;因为这和Windows系统下安装程序有一定的区别。现在PC6小编以最常用的qq软件为例&#xff0c;演示如何安装qq for Mac。 1、我们先打开浏览器&#xff0c;搜索我…

戴尔计算机软件的安装,买的新戴尔电脑怎么安装软件

以搭载windows10的戴尔灵越5000笔记本电脑为例&#xff0c;想安装软件&#xff0c;需先在浏览器中搜索软件的名称&#xff0c;如微信3.1.0&#xff0c;然后点击一个能下载该软件的正规网页&#xff0c;点击下载&#xff1b;下载完成后打开下载好的文件&#xff0c;根据提示选好…

联想软件商店安装教程

联想软件商店为广大用户提供一站式的软件、游戏的极速下载,所有软件都通过人工亲测,安全无忧。 1、在电脑浏览器中打开下载地址https://lestore.lenovo.com/或直接进入www.baidu.com后搜索"联想软件商店"&#xff0c;单击带有“官方”的即可 2、进入官网后单击“PC版…

MRT下载与安装

一 安装包下载 &#xff08; 放上安装包的百度云盘链接 &#xff1a;链接&#xff1a;https://pan.baidu.com/s/1eKkw8hiqjIBi0IJqSnGWKA?pwdbxr2 提取码&#xff1a;bxr2 自己下的方法为&#xff1a;在LP DAAC网站中&#xff0c;点tool→data manipulation→MODIS Reprojec…

Jlink软件下载和安装教程

学习目标&#xff1a; 最近一两年&#xff0c;STM32芯片价格暴涨。为了降低产品成本&#xff0c;选择了国产GD32芯片和MM32芯片。在某宝上买了JLINK烧录器烧写单片机程序。支持国产&#xff01;&#xff01;&#xff01; 学习内容&#xff1a; 一、下载JLINK软件 下载地址&…

Debian选择并安装软件需要下载很久的解决办法

网上的安装流程我就不贴了&#xff0c;具体步骤很详细&#xff0c;但是&#xff0c;到最后下载很慢的问题依然没有解决&#xff0c;不管英文还是中文的最后的归宿都是这样&#xff0c;如下 英文的结局如下 每次都是这两个结果&#xff0c;没事&#xff0c;我等&#xff01; 等…

1. 通用基础算法(1.1枚举算法/1.2递推算法/1.3递归算法)

通用基础算法 这部分主要介绍一下8种主要的通用基础算法思想&#xff1a;枚举算法、递推算法、递归算法、分治算法、贪心算法、回溯算法、动态规划算法、模拟算法&#xff0c;附带也会拓展介绍一些其他通用基础算法思想&#xff1a;数值转换算法、高精度求解算法、排序算法、排…

21、python数据结构——枚举算法

枚举算法的基本思想是根据问题的本身性质&#xff0c;一一列出问题所有可能的解&#xff0c;并在逐一列举的过程中&#xff0c;检验每个可能解是否是问题的真正解。 枚举算法是通过牺牲时间换取答案的全面性&#xff0c;属于搜索策略&#xff0c;适用于那些解变量连续、值域确…