vue3-vite-ts:编写Rollup插件并使用 / 优化构建过程

一、vue3-vite-ts项目,编写Rollup插件并使用的意义

在使用Vue3 + Vite + TypeScript这种技术栈时,可以使用Rollup插件来优化构建过程,例如使用rollup-plugin-typescript2插件来编译TypeScript代码,使用rollup-plugin-vue插件来处理.vue文件等。这样可以大大简化我们的开发流程,提高开发效率

通过这个知识点我们会更加了解项目启动的过程,编译的过程,在这个过程中我们可以做更多的事情,而不是面对盲盒。

二、编写Rollup插件

2.1、编写Rollup插件

本插件在编译过程中,把 <my-tag>替换为<div>

export default function myRollupPlugin() {return {name: 'my-plugin',transform(code, filePath) {if (filePath.endsWith('canvas/index.vue')) {// 测试成功code = code.replace(/my-tag/g, 'div')// 测试失败// code = code.replace(/<my-tag>/g, '<div>').replace(/<\/my-tag>/g, '</div>');}return code;},};}

2.2、 views/canvas/index.vue

<template><div class="contmian"><canvas id="myCanvas" width="400" height="400"></canvas><my-tag>哈哈哈</my-tag></div>
</template>

2.3、在vite.config.js中引入并使用

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import yourRollupPlugin from 'your-rollup-plugin'export default defineConfig({plugins: [vue(),yourRollupPlugin()]
})

2.4、测试

pnpm run dev 启动项目后看到网页元素

测试成功

三、本文感悟

本文虽然很简单,但是我们从本文体会到rollup插件是有意义的,并且掌握了开发rollup插件的流程,我们了解到rollup插件可以优化构建过程,这一点很重要,也给本人打开一扇窗,以后就可以自己根据需求来开发适合自己的插件了。

四、欢迎交流指正

参考链接

插件开发 | Rollup 中文文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/190409.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【开源】基于Vue+SpringBoot的康复中心管理系统

项目编号&#xff1a; S 056 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S056&#xff0c;文末获取源码。} 项目编号&#xff1a;S056&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 普通用户模块2.2 护工模块2.3 管理员…

版本控制系统Git学习笔记-Git服务器

文章目录 概述一、协议1.1 本地协议1.2 HTTP协议1.3 SSH协议1.4 Git协议 二、在服务器上搭建 Git 四智武童 一月一&#xff0c;捡花衣。二月二&#xff0c;练大字。三月三&#xff0c;穿新衣。四月四&#xff0c;去考试。考一个状元郎&#xff0c;坐著马车平天下。 概述 Git访…

OpenStack-train版安装之安装Keystone(认证服务)、Glance(镜像服务)、Placement

安装Keystone&#xff08;认证服务&#xff09;、Glance&#xff08;镜像服务&#xff09;、Placement 安装Keystone&#xff08;认证服务&#xff09;安装Glance&#xff08;镜像服务&#xff09;安装Placement 安装Keystone&#xff08;认证服务&#xff09; 数据库创建、创…

WebSocket 实战:构建高效的实时应用

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

使用Spark写入数据到数据库表

项目场景&#xff1a; 使用Spark写入数据到数据库表 问题描述 Column "20231201" not found in schema Some(StructType(StructField(sdate,IntegerType,false),StructField(date_time,StringType,true),StructField(num,LongType,false),StructField(table_code,S…

数据结构详解各种算法

1、设有两个整型顺序表L1&#xff0c;L2&#xff0c;其元素值递增有序存放&#xff0c;请定义该顺序表的元素类型及表类型,设计以下自定义函数&#xff1a; &#xff08;1&#xff09;录入顺序表中所有元素的值。 &#xff08;2&#xff09;将顺序表L1&#xff0c;L2合并为到…

LeetCode 8 字符串转整数

题目描述 字符串转换整数 (atoi) 请你来实现一个 myAtoi(string s) 函数&#xff0c;使其能将字符串转换成一个 32 位有符号整数&#xff08;类似 C/C 中的 atoi 函数&#xff09;。 函数 myAtoi(string s) 的算法如下&#xff1a; 读入字符串并丢弃无用的前导空格检查下一…

解决woocommerce产品方面遇到的小问题记录

问题1.通过自定义代码在woocommerce的任意一个产品的价格下面&#xff0c;加上一段文字 id&#xff0c;换成你自己的产品id&#xff0c;div里面的文字换成你自己的自定义文字&#xff0c;代码是加在function.php里面的哦 //添加文字产品价格下面 function insert_custom_cont…

SpringMVC利用@ControllerAdvice和ResponseBodyAdvice接口统一处理返回值

在我们进行Java的Web应用开发时&#xff0c;如何写更少的代码&#xff0c;做更多的事情。如何让开发更容易上手&#xff0c;更专注于业务层面&#xff0c;不需要太关心底层的实现。这里就分享一些我平时在搭建基础框架时候的一些心得体验。 统一处理返回值 在web应用中&#x…

集成开发环境 PyCharm 的安装【侯小啾python领航班系列(二)】

集成开发环境PyCharm的安装【侯小啾python领航计划系列(二)】 大家好,我是博主侯小啾, 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹…

《YOLOv5原创自研》专栏介绍 CSDN独家改进创新实战专栏目录

YOLOv5原创自研 https://blog.csdn.net/m0_63774211/category_12511931.html &#x1f4a1;&#x1f4a1;&#x1f4a1;全网独家首发创新&#xff08;原创&#xff09;&#xff0c;适合paper &#xff01;&#xff01;&#xff01; &#x1f4a1;&#x1f4a1;&#x1f4a1;…

Vue3中的组合式API的详细教程和介绍

文章目录 前言介绍组合式 API 基础setup 组件选项 带 ref 的响应式变量生命周期钩子注册内部 setupwatch 响应式更改独立的 computed 属性后言 前言 hello world欢迎来到前端的新世界 &#x1f61c;当前文章系列专栏&#xff1a;vue.js &#x1f431;‍&#x1f453;博主在前端…

PID控制

在PID控制中&#xff0c;输出通常是一个控制量&#xff0c;而不是直接的PWM占空比。输出的具体含义可以根据具体的系统和应用而变化。在这段代码中&#xff0c;PID控制器的输出是 output_calc。 而 CCR_duty 是控制施肥系统的PWM占空比&#xff0c;这是通过PID控制的输出和曲线…

西南科技大学(数据结构A)期末自测练习五

一、选择题&#xff08;每空 1 分&#xff0c;共 5 分&#xff09; 1、下面关于图的叙述中&#xff0c;正确的是&#xff08; &#xff09;。 (1)&#xff0e;回路是简单路径 (2)&#xff0e;存稀疏矩阵&#xff0c;用邻接矩阵比邻接表更省空间 (3)&#xff0e;若有像图中存在…

实验 elk+filebeat+kafka

kafka 3.4.1 elkfilebeatkafka 实现日志收集 httpd1 mysql1 topic 2.7 3.0 关闭防火墙 systemctl stop firewalld systemctl disable firewalld setenforce 0 安装 JDK yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel java -version 安装 Zookeeper cd /…

FL Studio2024重磅更新 带你了解FL21.2最新版本功能

FL Studio2024是功能强大的音乐制作解决方案&#xff0c;使用旨在为用户提供一个友好完整的音乐创建环境&#xff0c;让您能够轻松创建、管理、编辑、混合具有专业品质的音乐&#xff0c;一切的一切都集中在一个软件中&#xff0c;只要您想&#xff0c;只要您需要&#xff0c;它…

设计模式---第四篇

系列文章目录 文章目录 系列文章目录前言一、说说策略模式在我们生活的场景?二、知道责任链模式吗?三、了解过适配器模式么?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给…

Qt实现右键菜单

一、实现方法 QWidget提供了虚函数: virtual void contextMenuEvent(QContextMenuEvent*event);覆写该函数&#xff0c;即可。 二、Example 创建一个基本的mainwindow项目&#xff0c; 头文件&#xff1a; class MainWindow : public QMainWindow {Q_OBJECTpublic:MainWin…

for循环定义域问题

记录一个偶然发现的问题&#xff0c;代码如下 int main(int argc, char *argv[], char *envp[]){for(int i 1; i < 10; i);printf("%d",i); return 0; } 可以看到for循环后加了一个分号&#xff0c;按理说应该报变量i未定义的错误&#xff0c;但此时在编译器中…

详细学习PyQt5与数据库交互

Pyqt5相关文章: 快速掌握Pyqt5的三种主窗口 快速掌握Pyqt5的2种弹簧 快速掌握Pyqt5的5种布局 快速弄懂Pyqt5的5种项目视图&#xff08;Item View&#xff09; 快速弄懂Pyqt5的4种项目部件&#xff08;Item Widget&#xff09; 快速掌握Pyqt5的6种按钮 快速掌握Pyqt5的10种容器&…