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

[vite插件] 本地脚本猫脚本自动推送到浏览器

[复制链接]
  • TA的每日心情
    难过
    2024-4-24 18:57
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    27

    主题

    35

    回帖

    299

    积分

    荣誉开发者

    积分
    299

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

    发表于 2025-12-24 00:04:12 | 显示全部楼层 | 阅读模式

    [vite插件] 本地脚本猫脚本自动推送到浏览器

    介绍

    在使用 vite 工程写脚本猫脚本的时候, 在打包脚本的同时, 自动将打包完成的脚本推送到浏览器脚本猫插件中, 实现本地脚本和浏览器脚本的同步.

    如果你使用的是 vscode, 直接使用王一之的 [scriptcat-vscode] 即可, 功能更多, 也比我这个插件完善.

    功能

    • 更迅速的脚本同步 (比起 @require <本地文件地址>)
    • 开发版本和发布版本不再有差异化 (不需要 @require <本地文件地址> 或者手动复制粘贴同步)

    [注意] 本功能不是自动热重载, 只是将本地脚本同步到浏览器中, 还是需要手动刷新网页重载脚本.

    使用插件

    安装插件

    npm install @yiero/vite-plugin-scriptcat-script-push -D
    # or
    yarn add @yiero/vite-plugin-scriptcat-script-push -D
    # or
    pnpm add @yiero/vite-plugin-scriptcat-script-push -D

    配置插件

    vite.config.js / vite.config.ts

    import { defineConfig } from 'vite'
    import scriptPushPlugin from '@yiero/vite-plugin-scriptcat-script-push'
    
    export default defineConfig({
      plugins: [
        // 其他插件...
    
        // 自动将重建的脚本推送到 ScriptCat
        scriptPushPlugin()
      ],
    })

    开发脚本

    添加构建命令

    package.json 中添加命令, 使用 watch 模式构建脚本:

    TS 项目:

    {
        "scripts": {
            "watch": "tsc && vite build --watch",
        }
    }

    JS 项目:

    {
        "scripts": {
            "watch": "vite build --watch",
        }
    }

    启动构建

    npm run watch

    如果插件成功安装, 会在 watching for file changes... 下面提示本地 ws 服务器开启:

    watching for file changes...
    [ScriptCat] WS server started on port 8642

    连接脚本猫服务器

    1. 打开 浏览器 - 脚本猫 脚本列表 界面
    2. 点击左侧 工具 菜单栏
    3. 找到 开发调试 一栏
    4. 找到 VSCode地址 , 点击下方的按钮 连接
    5. 如果使用自定义端口, 请修改 ws://localhost:8642 的值为对应的端口号: ws://localhost:<port> .

    如果是首次连接, 建议把 自动连接vscode服务 勾选上. 然后后续开发脚本就不需要手动连接了, 启动本地 ws 服务器之后, 等待脚本猫自动连接上本地 ws 服务器即可.

    image-20251214021257327.png

    1. 查看终端提示:

    如果脚本猫连接 ws 服务器成功,会在终端提示:

    [ScriptCat] client-1 connected

    自动推送脚本

    连接完成后, 再次修改代码, 触发 vite 重建流程时, 插件将自动将打包完成的脚本推送到所有已连接的客户端.

    如果脚本成功同步, 会在终端提示:

    [ScriptCat] broadcast to client-1: <本地文件地址>

    进阶配置

    参数 类型 描述 默认值
    port number WebSocket 服务器的端口号 8642
    match RegExp 用于匹配要广播的文件的正则表达式 /\.js$/
    import { defineConfig } from 'vite'
    import scriptPushPlugin from '@yiero/vite-plugin-scriptcat-script-push'
    
    export default defineConfig({
      plugins: [
        // 在自定义端口上推送 .user.js 后缀的文件
        scriptPushPlugin({
          // 自定义端口
          port: 8642,
          // 自定义要推送的脚本名称匹配, 修改为只匹配文件名以 `.user.js` 结尾的文件
          match: /\.user\.js$/
        })
      ],
    })

    注意

    1. 同一时间只能开启一个 ws 服务器, 即无法同时开发多个项目.
    2. 脚本同步只能在通过 watch 模式构建时触发.

    因为本质上是通过开启一个本地 WebSocket 服务器, 等客户端 (浏览器脚本猫拓展) 连接本地 WebSocket 服务器, 之后再将脚本内容广播到客户端.

    使用 watch 模式构建 vite 服务会一直维持在后台, 本地 WebSocket 服务器也会保持开启状态. 如果只是执行一次 build, 本地 WebSocket 服务器在构建完成之后就被关闭了, 等不到客户端来连接.

    已有1人评分好评 理由
    李恒道 + 1 ggnb!

    查看全部评分 总评分:好评 +1 

  • TA的每日心情
    难过
    2025-12-31 17:25
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    10

    主题

    38

    回帖

    67

    积分

    初级工程师

    积分
    67

    油中3周年挑战者 lv1油中2周年

    发表于 2025-12-24 00:43:00 | 显示全部楼层
    咪的天!这都细节自动化到这了,不懂不懂,依旧古法炮制
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-15 10:18
  • 签到天数: 222 天

    [LV.7]常住居民III

    312

    主题

    5143

    回帖

    4739

    积分

    管理员

    积分
    4739

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

    发表于 2025-12-24 10:46:31 | 显示全部楼层
    我觉得vite插件也是挺好的
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

    发表回复

    本版积分规则

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