源码湾

暴力猴 Violentmonkey:2.94MB,装脚本不用翻应用商店

源码湾
1小时前发布
资源信息 Chrome / Edge 与 Firefox 两套目录,解压即装。
版本
v2.50.0
授权
MIT
体积
2.94 MB
语言
JavaScript
数据库
无
夸克网盘 无提取码 下载

今日下载 0 累计下载 0 还剩 8 个

暴力猴 Violentmonkey:2.94MB,装脚本不用翻应用商店

网页上让人难受的地方太多了:文章页侧边栏跟着滚、视频站没下载按钮、搜索结果里塞满推广、评论区默认只显示前三条。每遇到一个,就得去装一个扩展,装到最后工具栏一排图标,浏览器启动慢一截。

用户脚本走的是另一条路:只装一个管理器,再用几十行 JS 解决具体问题。暴力猴(Violentmonkey)就是这类管理器里的一个,v2.50.0,MIT,成品包 2.94MB。它把「脚本从哪来、什么时候跑、跑在哪几个域名」这三件事管起来,脚本本身随用随写随删。

Windows 和 Linux 两侧我都跑了一遍:用源码重构建出 63 个文件(MV2)和 66 个文件(MV3),与官方发行包文件数完全一致;解压包加载 1.37 秒,示例脚本注入后首页与详情页都是 200,控制台 0 报错。先说清楚:这台机器只验证了 Chromium,Firefox 那份包没真机跑过,原因写在坑里。也不适合三类人,后面单独说。

它是什么,和别的脚本管理器差在哪

用户脚本管理器不执行任何业务逻辑,它只做四件事:存脚本、按 @match 判断当前网址该不该跑、把脚本注入页面、给你一个界面改脚本。

暴力猴的界面是中文的,扩展详情里写着一句「一个开源的用户脚本管理器,支持很多浏览器」。它的权限只有三条:读取浏览记录、显示通知、修改你复制和粘贴的数据。「允许访问的网站」默认是「在所有网站上」,这是脚本能匹配任意域名的前提。

和同类比,几个能实测到的差异点:

  • 内置一份 CodeMirror 编辑器,脚本可以在扩展里直接改,改完刷新页面就生效,不用外部工具
  • 弹出面板固定 320 像素宽,面板里能单独关掉「当前站点」的脚本执行,不用去设置页
  • 支持从 file:// 导入导出 zip,备份的是一整个库,不是一条条脚本
  • 设置里有「注入模式」三档:auto、sync page、备用 page。脚本抢在页面脚本前面执行,还是老实等页面加载完,就靠这个
  • 新版本带了 MCP 入口(设置里叫「AI agent access」),默认没有待处理请求

我的测试环境

  • Windows:Windows 11,Playwright 自带 Chromium 1248,persistent context 加载未打包扩展
  • 工具链:node v24.21.0、pnpm 12.13.0(两侧同版本)
  • Linux:CentOS Stream 9,2 核、内存 1610MB + swap 10239MB,宝塔面板 Web 终端,机器上没有图形界面
  • 成品包:2.94MB / 3,077,771 字节 / 135 个条目,里面是 chrome-mv3 与 firefox-mv2 两套目录
  • 截图:桌面 1400 宽 deviceScaleFactor 1,手机 390 宽 deviceScaleFactor 2,共 12 张
  • 路径:加载扩展 → 读 manifest → 打开选项页与弹出面板 → 装一个示例脚本 → 打开本地静态站看注入结果

安装:Chrome 和 Edge

  1. 解压包,Chrome 和 Edge 都用 chrome-mv3 这个目录
  2. 地址栏输入 chrome://extensions/,Edge 是 edge://extensions/
  3. 打开右上角的「开发者模式」
  4. 点「加载已解压的扩展程序」,选 chrome-mv3 目录本身

扩展管理页 - 暴力猴 Violentmonkey:2.94MB,装脚本不用翻应用商店

加载完能看到版本号 2.50.0、大小 2.0MB、ID,检查视图显示一个 Service Worker 在跑。实测从点「加载」到扩展可用是 1.37 秒,第二轮 1.52 秒。

同一页往下拉,有一项 「允许运行用户脚本」,默认是关的。这一项不开,脚本列表照样能显示,页面上一条脚本都不会执行。打开时会弹一句提示:「此扩展程序将能够运行未经 Chrome 应用商店审核的代码」,确认即可。实测这一步打开之后,示例脚本才在页面上跑出横幅。

别指望命令行一键加载。 Chrome 137 之后移除了 --load-extension 启动参数,我写别的扩展教程时踩过,怎么调都不生效。手动走上面四步。

安装:Firefox

Firefox 用包里另一个目录 firefox-mv2,走临时加载:

  1. 地址栏输入 about:debugging#/runtime/this-firefox
  2. 点「临时载入附加组件」
  3. 选 firefox-mv2 目录里的 manifest.json

这样装的扩展在浏览器重启后消失,下次要重来一遍。想要长期用,就得走签名安装包那条路。

这一份我这轮没跑成:Chromium 156 已经不认 MV2,把它当 Chromium 扩展加载会报 EXT_NOT_LOADED(等了 18.8 秒后超时失败);而机器上没有可自动化的 Firefox,所以 Firefox 侧只有产物一致性验证,没有真机注入截图。要装 Firefox 版,按上面三步手动来。

安装:Linux 侧与构建验证

Linux 桌面上的 Chromium 装法和 Windows 一样,把 chrome-mv3 拷过去,chrome://extensions 里加载即可。纯服务器没有图形界面,装不进去,所以这一侧做的是构建一致性验证,对下载者来说这项更重要——你拿到包里的目录,应该就是源码能构建出来的东西。

服务器侧实测:源码 tar.gz 917,129 字节,加速节点 6 秒拉下来,sha256 与本机收集包一致;解压 287 个文件;pnpm install --frozen-lockfile 22 秒;MV2 构建 49 秒、MV3 构建 50 秒;整段从开始到结束 2 分 27 秒。

两平台对比结果:

  • 文件数完全一致:MV2 63/63,MV3 66/66
  • 总字节数:MV2 2,118,780(Win)/ 2,118,823(Linux),差 43 字节;MV3 2,110,839 / 2,110,880,差 41 字节
  • 结论是文件清单一致、逐字节不完全一致,差在几十字节这个量级

判读要谨慎:文件数相等不等于产物相同,字节差几十说明构建里带了时间戳一类的不确定因素。我原本还想把两侧逐文件 SHA256 拉平对比,服务器面板在 12:47 之后 HTTP 无响应,重试三次(5s / 15s / 45s)都没恢复,逐文件哈希清单没取回——所以这一项只到「文件数 + 总字节数」的粒度,别当成逐字节一致。

第一次装脚本:从地址到横幅

装完先别急着找脚本,用一条自己写的确认链路通了,后面出问题才好定位。我用一条本地示例脚本验证:

  1. 打开一个 .user.js 地址,页面会跳到安装确认页
  2. 确认页顶部是「安装脚本」,中间是脚本元信息,下面是源码全文
  3. 点「安装 (Ctrl+Enter)」

脚本安装确认页 - 暴力猴 Violentmonkey:2.94MB,装脚本不用翻应用商店

确认页上能读到两个关键头:@grant none 和 @match http://127.0.0.1:18081/*。前者表示这条脚本不需要任何特权 API,后者决定它只在那个域名下跑。装脚本时最该看一眼的就是 @match,忽略它等于把所有网站都交出去。

从打开地址到脚本出现在面板里,实测 14.7 秒(首轮 14.4 秒)。

再打开被 @match 命中的页面,脚本注入成功的话会有一条紫色横幅:

实测页 脚本注入 - 暴力猴 Violentmonkey:2.94MB,装脚本不用翻应用商店

首页和详情页都返回 200,横幅都在,data-vm-test 属性为 ok。整个验证流程 31.5 秒跑完,期间 0 个失败请求、0 条控制台报错。

装完先做这三件事

第一,把「允许运行用户脚本」打开。 这一步漏了会以为是扩展坏了:面板里脚本明明在,页面就是没反应。

第二,装一条只有几十行的测试脚本,确认链路通。 脚本头写 @match 指向一个你能控制的页面,脚本体只做一件事——往页面上插一行字。看到那行字,说明「存储 → 匹配 → 注入」三段都通了。

第三,在设置页导出一次备份。 备份导出的是 zip,包含脚本数据和扩展设置,换机或重装直接导回去。脚本攒多了这个文件比什么都值钱。

实测数据

  • 成品包:2.94MB / 3,077,771 字节 / 135 个条目
  • 构建产物:MV2 63 个文件 2,118,780 字节;MV3 66 个文件 2,110,839 字节
  • 构建耗时:pnpm install 16.5 秒,MV2 24.96 秒,MV3 23.46 秒(Windows)
  • 版本对照:自建 MV2 63 文件 vs 发行包 63 文件,57 个 SHA256 一致、6 个不同;MV3 66 vs 66,60 个一致、6 个不同
  • 目录指纹:MV2 fa733cd8…,MV3 888a2768…(逐文件 SHA256 排序后再哈希)
  • manifest:name 暴力猴、version 2.50.0、mv 3、minChrome 135.0
  • 加载到可用:1.37 秒(复测 1.52 秒),识别扩展 58 毫秒
  • 选项页:2.74 秒打开,标题「暴力猴」
  • 装一条脚本:14.7 秒(复测 14.4 秒),装完面板显示 1 个脚本
  • 注入结果:首页 200、详情页 200,横幅都在,data-vm-test=ok
  • 异常计数:0 条控制台报错、0 个失败请求、0 个 4xx/5xx
  • 截图:12 张,抓取过程 0 报错
  • 弹窗尺寸:宽 320 像素,面板里能改

解压即用也验了一遍:解到一个全新目录,装载 chrome-mv3,扩展起来 1.37 秒,选项页 2.74 秒,装脚本 14.7 秒,注入成功,全流程 31.5 秒、0 报错。

界面长什么样

主界面是脚本面板,左边是「已安装的脚本 / 设置 / 备份 / 关于」,右边是脚本列表。顶部那行有当前匹配到的脚本数:

脚本面板 - 暴力猴 Violentmonkey:2.94MB,装脚本不用翻应用商店

每条脚本一行,右边一排小图标依次是:编辑源码、启用禁用、刷新、信息、主页、丢进回收站。搜索框下面那个下拉是排序方式,默认「执行顺序」。

点编辑进编辑器,代码、设置、帮助三个标签,右边能勾「允许更新 / 允许编辑」:

脚本编辑器 - 暴力猴 Violentmonkey:2.94MB,装脚本不用翻应用商店

设置页一共十组,最常改的是「弹出式菜单和图标」(宽度、排序、徽标)、「更新」(检查频率)、「备份和维护」、「高级」(注入模式、黑名单)、「自定义样式」:

设置页 - 暴力猴 Violentmonkey:2.94MB,装脚本不用翻应用商店

弹出面板就这么大,320 像素宽,顶上一行是版本号加三个按钮,第二行「为此站点查找脚本」,下面列出命中的脚本:

弹出面板 - 暴力猴 Violentmonkey:2.94MB,装脚本不用翻应用商店

390 宽度下的实测页,脚本注入的横幅照样顶在最上面:

手机端 实测页 - 暴力猴 Violentmonkey:2.94MB,装脚本不用翻应用商店

手机浏览器基本装不了扩展,这张图是为了看注入结果在小屏上的排版,不是手机版扩展。

三个真实的坑

第一个,Chromium 156 加载不了包里的 firefox-mv2。

我拿它当普通未打包扩展加载,Chromium 等了 18.8 秒后报 EXT_NOT_LOADED,扩展管理器里根本没有它。原因是新版本 Chromium 已经移除 MV2 扩展支持,和包里文件坏没坏无关。Chrome、Edge 只认 chrome-mv3 目录,Firefox 那份在 Firefox 里用。

第二个,扩展 ID 是用解压路径算出来的,换目录等于换扩展。

同一个包,我一直用 dist-mv3-win 加载,ID 是 dgkiccdccdpfmbiekmccgdfhlpodlgino;换到成品包里解出来的 chrome-mv3 目录,ID 变成 pkaipjcihfchdijkkgckgkdfghokgakc。未打包扩展的 ID 由绝对路径推导,路径一变 ID 就变。带来的后果很实际:ID 变了就算另一个扩展,旧 ID 下装的脚本、设置、localStorage 全都读不到,界面上看起来就是「我的脚本全没了」。所以解压位置先定下来,别装完再改名、搬目录。

第三个,「允许运行用户脚本」是独立开关,默认关闭。

Chrome 135 之后的 MV3 扩展都带这一项,位置在扩展详情页最下面。它默认关,关着的时候脚本不会执行。这一项是 Chrome 的安全折中:MV3 的扩展要能跑任意代码,必须由用户显式点头。实测里我是手动打开的,打开后横幅才出现。

另外有两个小的:自建产物和官方发行包不是逐字节相同,6 个文件 SHA256 不一致(common-ui.js、confirm/index.js、options/index.js、popup/index.js、public/lib/codemirror.js,MV3 还多一个 sw.js),所以别拿自己构建的包去校官方校验和;弹出面板宽度写死在设置里,改成别的值要自己去「弹出式菜单和图标」那组改。

这几类人适合,这几类不适合

适合:

  • 只想改几个网页细节,不想为每个需求装一个扩展的人
  • 用公司电脑或公用机器,装不了应用商店扩展的人
  • 要用 file:// 页面、内网系统、本地测试站做网页改造的开发者
  • 已经有一堆 .user.js 收藏,需要一个能分类、能搜索的容器

不适合:

  • 期待装完就有效果的。管理器本身不提供任何功能,脚本得自己装
  • 主要用 Firefox 又不想手动加载的。这轮没验到 Firefox 真机
  • 不想看脚本源码的。别人写的用户脚本和扩展一样能读你的页面,@match 写宽了什么都拦不住
  • 手机上用的。移动端浏览器装不了扩展

常见问题

源码获取

建议先转存到自己网盘再下载。手机上打开链接点右下角「保存到网盘」,回头在夸克 App 的「我的网盘」里下载。

实测说明

本文截图全部来自本站实测环境(源码湾 yuanmawan.com),实测版本 暴力猴 Violentmonkey v2.50.0,许可证 MIT。

© 版权声明
THE END
喜欢就支持一下吧
点赞 0 分享 收藏
评论 抢沙发
OωO
取消