[ 本帖最后由 涛之雨 于 2023-1-6 23:20 编辑 ]\n\n[ 本帖最后由 涛之雨 于 2023-1-6 22:33 编辑 ]\n\n根据 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起来了(与vue啊vite啊react之类的框架不一样,我只搞了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都写的比较清楚。。。
使用watch 脚本开发,文件保存之后自动打包生成bundle.js 文件,刷新页面即可运行(当然要想继续折腾,可以添加热更新。。。但是感觉没必要=_=)
最终效果(部分):
(没错,因为有sourcemap,所以可以方便调试。。。)
写了这么多,其实很简单。。。
|