李恒道 发表于 2024-4-13 12:31:17

尝试抹平Tampermonkey的VSCode开发体验(一)

虽然ScriptCat的Vscode远程开发体验好

但是Tampermonkey一如往常的烂

加上最近比较无聊,决定探索一下Tampermonkey的实现方案

不确定最后能不能真的实现

# 正文

首先确定了Tampermonkey的脚本存储数据在
```
C:\Users\用户\AppData\Local\Google\Chrome\User Data\Default\Local Extension Settings\dhdgffkkebhmkfjojejmpbldmpobfkfo
```
使用的是levelDB数据库,但是这种数据库有系统级的进程锁
在谷歌浏览器运行期间我们无法写入,同时可能存在其他的缓存等问题
经过研究这条路是走不通了
插件的源码路径在
```
C:\Users\用户\AppData\Local\Google\Chrome\User Data\Default\Extensions\dhdgffkkebhmkfjojejmpbldmpobfkfo\5.1.0_0
```
经过尝试一旦尝试修改代码就会破坏完整性从而导致重新下载,那么这条路也走不通了

在确定levelDB存在锁,那唯一的途径就是魔改插件代码了,但是Chrome又有完整性校验,所以我们只能考虑通过开发者模式手动加载我们自己的修改版代码,同时又不想污染用户原本的数据

再三选择最后想通过puppeteer来进行开发

```js
const puppeteer = require("puppeteer");   
const crxBase = path.join(__dirname, "./tampermonkey_crx");
const path = require("path");
async function openBroswer() {
const pathToExtension = crxBase;
const browser = await puppeteer.launch({
    headless: false,
    args: [
      `--disable-extensions-except=${pathToExtension}`,
      `--load-extension=${pathToExtension}`,
    ],
});
}
```

然后尝试在background.jd中加一个alert,尝试启动发现可以正常执行我们的修改版代码

# Next....

zip11 发表于 2024-4-13 12:50:43

哥哥探索精神值得加油,我的感觉这是重复造车轮,节省时间可用多开发些自己常用的脚本,技术只是为目的实现的工具,知识太多一辈子也学不完,

Tampermonkey自带的编辑器,更脚本猫自带的编辑器比较,油猴提示词不行,字体也小,

我现在游览器装 了 油猴和脚本猫,油猴作为备用插件

王一之 发表于 2024-4-13 13:16:29

我直接选择脚本猫

李恒道 发表于 2024-4-13 13:42:52

zip11 发表于 2024-4-13 12:50
哥哥探索精神值得加油,我的感觉这是重复造车轮,节省时间可用多开发些自己常用的脚本,技术只是为目的实现 ...

我也是拿油猴当备用
主要其实也是当玩了
想从头在本地建一套服务器和客户端相互沟通实现油猴的动态加载脚本
页: [1]
查看完整版本: 尝试抹平Tampermonkey的VSCode开发体验(一)