位置: IT常识 - 正文

使用 Vite 插件开发构建 Tampermonkey 用户脚本(vite 插件开发)

编辑:rootadmin
起因 一直以来,我都是直接在浏览器 Tampermonkey 扩展页面直接新建用户脚本来开发的: 对于一些简单的脚本,这没有什么问题,即改即看。但当代码多了以后问题就来了,自带编辑器开发体验确实不太舒服,没有格式化,没有代码补全,无法模块化编写代码等等,这时候我就想寻找一个打包方案,让我们可以在自己 ... 起因

推荐整理分享使用 Vite 插件开发构建 Tampermonkey 用户脚本(vite 插件开发),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vis插件,viz插件,vis插件,vite-plugin-legacy,vite 插件开发,vitagrafix插件怎么用,vu meter插件,vite 插件开发,内容如对您有帮助,希望把文章链接给更多的朋友!

一直以来,我都是直接在浏览器 Tampermonkey 扩展页面直接新建用户脚本来开发的:对于一些简单的脚本,这没有什么问题,即改即看。但当代码多了以后问题就来了,自带编辑器开发体验确实不太舒服,没有格式化,没有代码补全,无法模块化编写代码等等,这时候我就想寻找一个打包方案,让我们可以在自己的编辑器如 VSCode 里开发,这样就可以充分利用前端工程化的便利,提升开发体验。常见的打包工具比如 webpack、parcel、rollup 等,首先排除 webpack(笑),然后试了下 parcel,效果不太理想,之后试了 rollup 感觉还可以。转眼想到要用 vue 开发,那就直接上 vite 吧 ?,vite 也是用 rollup 来打包生产代码的。直接打开 npm,看看有没有人造轮子,然后发现下面几个包:

gorilla (rollup 插件)vite-plugin-tampermonkeyvite-plugin-monkey

这几个都符合基本需求,其中 gorilla 不能打包样式,另外两个插件都差不多,选了 vite-plugin-tampermonkey 进行改造。修改后的插件: Github | npm

插件特点通过单独的配置文件或者 package.json 中的 tmHeader 字段来配置 Tampermonkey 的 Userscript Header构建生产时支持自动分析代码用到的 grant开发模式时默认导入所有 grant,并且把所有的 grant 方法加入到 unsafeWindow可通过简单配置,把引入的外部包 require 化,自动引入 jsdelivr CDN ,详情见下面的插件配置开始之前

Vite 官方中文文档Tampermonkey 文档gorillavite-plugin-tampermonkeyvite-plugin-monkey

初始化项目使用 Vite 插件开发构建 Tampermonkey 用户脚本(vite 插件开发)

兼容性注意Vite 需要 Node.js 版本 >= 12.0.0。然而,有些模板需要依赖更高的 Node 版本才能正常运行,当你的包管理器发出警告时,请注意升级你的 Node 版本。

使用 NPM:

$ npm create vite@latest

使用 Yarn:

$ yarn create vite

使用 PNPM:

$ pnpm create vite

按需选择框架推荐使用 TypeScript然后到项目目录开始安装依赖

插件使用安装yarn add vite-plugin-tm-userscript -D# ORnpm install vite-plugin-tm-userscript -D配置 vite.config.tsimport { defineConfig } from 'vite'import Userscript from 'vite-plugin-tm-userscript'// https://vitejs.dev/config/export default defineConfig({ plugins: [ Userscript({ externalGlobals: ['vue'] }) ]})配置 Userscript Header

有四种方式来配置 Userscript Header, 优先级如下所示

header.config.jsonheader.config.jsheader.config.txtpackage.json 中的 tmHeader 字段

其中 header.config.txt 使用 Tampermonkey 头部注释配置,不会经过处理,直接插入脚本头部作为 Header 使用其他三种格式按 json 格式配置,多个属性配置如 match 用数组表示,经过处理自动添加 grant 与 require示例配置见 example/header.config.js使用 js 文件来配置的好处是可以有自动补全:具体属性配置见 Tampermonkey 文档

插件配置export interface TMPluginOptions { entry?: string; autoGrant?: boolean; externalGlobals?: string[] | Record<string, string | string[]>;}externalGlobals

配置外部包,比如 vue,axios 等,减少打包体积,并且会自动

本文链接地址:https://www.jiuchutong.com/zhishi/309313.html 转载请保留说明!

上一篇:Python中三种模块类型的介绍(python中模块的概念)

下一篇:当月销售次月开票怎么做账(当月销售次月开票就按次月申报)

  • 股东会的特别决议事项包括
  • 工资怎么扣费
  • 行政事业性收据上面的角分无是右下划线吗
  • 出售无形资产计入资产处置损益还是营业外收入
  • 我的初级备考经历怎么写
  • 记账时显示期初未建账
  • 生产成本的明细账怎么登记
  • 增值税税负率怎么算
  • 房产赠与税如何征收2021
  • 民间非营利组织会计制度
  • 反写是清卡的意思吗
  • 销售蔬菜水果需要什么证件
  • 增加以前年度收入是否需要更正申报年报
  • 公司招待客户买的水果怎么入账
  • 附加税的税率表
  • 现金采购合理吗
  • 房地产开发企业预收款预缴增值税
  • 付下一年房租会计分录
  • 住宿发票3%和6%区别
  • 继续教育专项附加扣除需要什么材料
  • 金税三期核心征管系统行政处罚
  • flash动画导出视频有水印吗
  • svhost.exe - svhost是什么进程 有什么作用
  • 贴现利息由谁承担
  • 如何做无票收入的会计分录
  • realtek自动安装
  • rasman.exe - rasman是什么进程 有什么作用
  • 土地增值税的计税依据
  • php设计思路
  • php5.4升级到php7
  • 经营租赁固定资产体现实质重于形式
  • 如何使用nodejs
  • 研发费用怎样进项抵扣
  • 超过500万需要补税吗
  • php遍历数组使用的是foreach
  • 盈余公积转增资本什么意思
  • 最新人工智能软件chingt
  • 图像修复技术
  • docker windows -v
  • 增值税折扣发票有折扣字样
  • 电池成本什么时候能降低
  • 承租人经营租赁账务处理
  • 简易注销公示后怎么操作
  • 免税法扣除法抵免法的区别
  • 织梦怎么建站
  • distinct用法及搭配
  • 收保险公司工伤怎么赔偿
  • 银行转账支付中是什么状态
  • 上月结转余额怎么做会计分录
  • 其他应付款的项目
  • 原材料专票入库怎么入账
  • 收到个税手续费返还怎么做分录
  • 应该免税的增值税是什么
  • 一次性伤残就业补助金怎么领取
  • 债务人对债权人享有
  • 企业计提福利费按多少提
  • 其他应付款贷方余额怎么冲平
  • vs2019连接mysql
  • sql语句行转列
  • sql2008开启远程连接
  • 统计得到的一组数据有80个
  • win7怎么打开后缀
  • winxp回收站在哪里
  • windows勒索病毒
  • imapi.exe
  • win10正版授权图标
  • Linux mysql如何更改root密码以及忘记root密码的修改方法
  • 深入解析windows第7版
  • 90后的毕业照
  • macbook编译java
  • opengl learn cn
  • javascript相对路径
  • android开发最全教程
  • python ftp storbinary
  • 小米手机图库图标
  • python中如何去除空格
  • 9月1日起陕西省房产契税新政
  • 从事货物批发或零售的纳税人
  • 十堰市税务大厅
  • ssr服务器地址端口密码
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设