上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

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

[复制链接]
  • TA的每日心情
    开心
    2023-2-28 23:59
  • 签到天数: 191 天

    [LV.7]常住居民III

    637

    主题

    5204

    回帖

    6083

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6083

    荣誉开发者管理员油中2周年生态建设者喜迎中秋

    发表于 2024-4-13 12:31:17 | 显示全部楼层 | 阅读模式

    虽然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来进行开发

    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....

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
  • TA的每日心情
    奋斗
    昨天 00:05
  • 签到天数: 164 天

    [LV.7]常住居民III

    22

    主题

    31

    回帖

    201

    积分

    荣誉开发者

    积分
    201

    新人报道油中2周年荣誉开发者

    发表于 2024-4-13 12:50:43 | 显示全部楼层
    哥哥探索精神值得加油,我的感觉这是重复造车轮,节省时间可用多开发些自己常用的脚本,技术只是为目的实现的工具,知识太多一辈子也学不完,

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

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

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-13 10:14
  • 签到天数: 211 天

    [LV.7]常住居民III

    294

    主题

    3908

    回帖

    3829

    积分

    管理员

    积分
    3829

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 2024-4-13 13:16:29 | 显示全部楼层
    我直接选择脚本猫
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。/ 微信公众号:一之哥哥
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-2-28 23:59
  • 签到天数: 191 天

    [LV.7]常住居民III

    637

    主题

    5204

    回帖

    6083

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6083

    荣誉开发者管理员油中2周年生态建设者喜迎中秋

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

    我也是拿油猴当备用
    主要其实也是当玩了
    想从头在本地建一套服务器和客户端相互沟通实现油猴的动态加载脚本
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表