{"id":14988906,"url":"https://github.com/linlin00000000/usbuild","last_synced_at":"2026-03-11T10:32:09.188Z","repository":{"id":209875201,"uuid":"724898682","full_name":"LinLin00000000/usbuild","owner":"LinLin00000000","description":"一个基于 esbuild 的油猴脚本(UserScript)构建工具","archived":false,"fork":false,"pushed_at":"2024-04-10T02:49:09.000Z","size":166,"stargazers_count":24,"open_issues_count":2,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-25T20:15:24.241Z","etag":null,"topics":["build-tool","esbuild","greasemonkey","tampermonkey","userscript","violentmonkey"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/@linlin00/usbuild","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LinLin00000000.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-29T02:33:13.000Z","updated_at":"2025-03-12T14:25:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"9770a7ef-50c7-4089-946c-17da2db85452","html_url":"https://github.com/LinLin00000000/usbuild","commit_stats":{"total_commits":73,"total_committers":2,"mean_commits":36.5,"dds":0.273972602739726,"last_synced_commit":"04f2d0eb51220a1e1342eeb0573fdef3df7d9a5b"},"previous_names":["linlin00000000/usbuild"],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinLin00000000%2Fusbuild","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinLin00000000%2Fusbuild/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinLin00000000%2Fusbuild/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinLin00000000%2Fusbuild/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LinLin00000000","download_url":"https://codeload.github.com/LinLin00000000/usbuild/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248501643,"owners_count":21114676,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["build-tool","esbuild","greasemonkey","tampermonkey","userscript","violentmonkey"],"created_at":"2024-09-24T14:17:24.509Z","updated_at":"2026-03-11T10:32:09.136Z","avatar_url":"https://github.com/LinLin00000000.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# usbuild\n\n🚀 一个基于 [esbuild](https://esbuild.github.io/) 的 [油猴](https://www.tampermonkey.net/) 脚本（UserScript）构建工具，让你的脚本开发像坐火箭一样快！\n\n## 🪄 功能\n\n- 🧙‍♂️ **变戏法般的 UserScript 头部注释** - 你写代码，我变魔术！自动将你的配置变成闪亮的 [UserScript 头部注释](https://www.tampermonkey.net/documentation.php)。忘记繁琐的格式吧，让这个魔法帮你搞定一切！\n\n- 🔍 **侦探式的智能 GM_API 探测** - 我们的构建过程中有个侦探，它会悄悄检查你的代码，寻找那些GM_API的踪迹，并且像发现宝藏一样自动生成 [grant](https://www.tampermonkey.net/documentation.php#meta:grant) 属性。配置再也不是什么难题，全部交给这个侦探吧！\n\n- 🚀 **忍者般的热重载与开发服务器** - 开启 dev 模式，就像召唤了一位忍者，他不仅偷偷启动了开发服务器，还能在源文件一有风吹草动时，迅速做出反应，实现热重载。手动刷新？那是过去式！\n\n- 🌐 **本地文件的秘密通道（可选功能）** - 想绕过 CSP？没问题！启用 `enableLocalFileRequireInDev`，就像打开了一个秘密通道，让你在本地自由穿梭，不受束缚。但记住，这可是个双刃剑，虽然强大，但要小心使用，我们默认是关着的哦！\n\n## 🛠️ 安装\n\n🔮 在 01 世界里敲入这个神秘的咒语，神奇的工具就到手啦！\n\n```shell\nnpm i -D @linlin00/usbuild\n```\n\n## 🚀 快速开始\n\n想要成为 UserScript 的大师吗？来吧，跟着我一起开始这段奇妙之旅！\n\n首先，创建一个神秘的文件，取名为 `MyUserScript.mjs`（当然，名字可以随你的心意变换哦）。\n\n接着，用你那魔法般的双手在文件里施展这样的咒语：\n\n```javascript\nimport { build } from '@linlin00/usbuild'\nawait build({\n    match: ['https://*.bilibili.com/*']\n})\n\nconst 超大声 = alert\n超大声('番茄炒蛋拳!')\n```\n\n完成这一切后，只需轻轻一挥你的魔杖（直接使用 `node` 命令运行该文件），神奇的事情就会发生：脚本自动构建，并且浏览器会如同被施了魔法般自动打开安装！\n\n## 🌟 参数详解\n\n准备好深入探索 usbuild 的神秘力量了吗？让我们一起解锁这些魔法参数的秘密！\n\n`build` 函数是你施法的核心，它有两个神秘的参数：一个是 UserScript 配置的魔法盒子，另一个是可选的魔法选项。\n\n- [UserScript 配置](https://www.tampermonkey.net/)\n\n    一个对象，其中的🔑键名就像法术的名称，值则是充满魔力的字符串或字符串数组。\n  - name\n\n    🎩 name 字段可以选择性消失，如果消失，它会像魔术师一样从文件名中变出来。\n\n  - ~~grant~~\n\n    不需要书写该咒语。\n\n    🕵️‍♂️ 在非 dev 模式下，grant 属性会像智能侦探一样自动进行检测并生成，免去了手动配置的繁琐。\n\n    🚀 而在 dev 模式下，为了让开发更加方便快捷，我们直接授予所有权限，就像给开发者提供了一把万能钥匙！\n\n  - [...](https://www.tampermonkey.net/)\n  \n- 构建选项\n\n    一个对象。这些是定制你的构建过程的小小工具。\n\n  - `dev`\n\n    默认值 `false`\n  \n    🌆 这个模式就像是间谍黄昏，会偷偷监听源文件的变动，实现神奇的热重载。\n\n  - `outdir`\n\n    默认值 `'dist'`\n  \n    🏠 outdir 会在指定目录下藏起构建后的文件。\n\n  - `host`\n\n    默认值 `'127.0.0.1'`\n\n    🏡 host 设定了我们的服务地址，就像定下了我们神秘小屋的地点，确保它既安全又容易找到。\n\n  - `port`\n\n    默认值 `7100`\n\n      🚪 port 就像是我们小屋的门牌号，指定了访客应该敲哪扇门来找到我们的宝藏。\n\n  - `autoReload`\n\n    默认值 `true`\n\n    🔄 控制是否开启自动刷新的魔法开关（也就是实时热重载）。当源文件变化时，它就像灵巧的小精灵，自动更新网页，让变化瞬间呈现，免去了手动刷新的麻烦。\n\n  - `autoReloadMode`\n\n    默认值 `refresh`\n\n    🧶 控制自动重载的模式，可选值为 `refresh` 和 `reinstall`。`refresh` 以刷新网页的方式自动重载，`reinstall` 以重新安装脚本的方式自动重载。\n\n  - `autoReloadDelay`\n\n    默认值 `1000`\n\n    ⏱️ autoReloadDelay 是自动重载的等待时间（毫秒），像是小精灵准备魔法的时间。\n\n  - `enableLocalFileRequireInDev`\n\n    默认值 `false`\n\n    📂 控制在开发模式下是否启用加载本地文件来绕过内容安全策略（CSP）。启用这个功能时，你需要在浏览器的油猴扩展中设置允许访问本地文件。这就像是给你的脚本赋予了额外的力量，让它在本地环境中自由翱翔，但别忘了，这需要在你的浏览器扩展中额外开启相应的权限。\n\n## 💬 社区\n\n作者的闲聊吹水（QQ）群: 733165997\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinlin00000000%2Fusbuild","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinlin00000000%2Fusbuild","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinlin00000000%2Fusbuild/lists"}