本帖最后由 涛之雨 于 2023-1-6 23:18 编辑
根据 Bilibili-Evolved 的开发文档
一共分三步
- 赋予油猴/脚本猫/whatever 本地文件读取权限
- 配置油猴脚本
比如我的
// ==UserScript==
// @name 看着填
// @version 123
// @author 涛之雨
// @license MIT
// @match *://*.github.com/*
// @match *://github.com/*
// @run-at document-start
// @grant unsafeWindow
// @connect *
// @require https://unpkg.com/sweetalert2/dist/sweetalert2.min.js
// @icon http://github.com/favicon.ico
// @require file://C:/Users/taozhiyu/Documents/GitHub/inject/bundle.js
// ^这是我的脚本文件位置
// ==/UserScript==
- 开始撸码
然后就可以搞骚操作了,比如ts就可以run起来了(跟他们不一样,我只搞了ts。。。)
打包我一开始是用的glup,后来感觉没必要。。。又改成直接bash脚本丢到package.json
里。。。
反正就是browserify
打包,
browserify-shim
排除cdn导入的依赖,
tsify
是typescript
解析组件
最后uglify-js
去压缩(可能没必要?反正greasyfork不允许来着)
所以,最终我的package.json
中修改为:
{
...
"scripts": {
"watch": "watchify main.ts -t [ browserify-shim ] -p [ tsify --noImplicitAny ] -o bundle.js --debug --verbose",
"build": "browserify main.ts -t [ browserify-shim ] -p [ tsify --noImplicitAny ] > bundle.js",
"dest": "browserify main.ts -t [ browserify-shim ] -p [ tsify --noImplicitAny ] | uglifyjs -cm > bundle.min.js"
},
"browserify-shim": {
"sweetalert2": "global:Swal"<-我用的是sweetalert2,映射到window.Swal
}
}
可以参考这里,每个依赖的github都写的比较清楚。。。
此外可以安装一些编辑器插件,比如vscode可以使用Scriptmonkey
之类的对GM_?
进行识别和定义(当然也可以npm安装开发依赖。。。。)
最终效果(部分):
(没错,因为有sourcemap,所以可以方便调试。。。)
写了这么多,其实很简单。。。
水贴嘛(吾爱也发一份去)