油猴脚本学习笔记
🏝️基础资料
Tampermonkey中文文档世界通用版本号规则
Tampermonkey菜单油猴脚本开发进阶 VSCode + Webpack + TypeScript 油猴开发环境搭建,本地调试、实时热刷新、自动构建和发布
Webpack 配置的改进
webpack使用html-loader加载js中引入的html资源
🏝️油猴webpack脚手架框架介绍
🏝️项目结构
1 | │ |
🏝️项目初始化
-
yarn install 安装依赖
-
执行 yarn start 或者 yarn dev 或者 (自定义的)yarn builddev 目的是编译生成 douyu.dev.user.js
-
如果运行 yarn start
项目devTools.ts
的函数autoInstall
文件会 弹出油猴脚本安装网页提示安装脚本 安装脚本成功后修改 脚本内容 就是你磁盘文件douyu.dev.user.js
的路径
// @require file://D://xxxxx//dist//douyu.dev.user.js
-
如果你没安装脚本 则手动 打开油猴脚本控制面板 新建空白脚本 然后 把 生成的
douyu.dev.user.js
的banner
拷贝到油猴面板空白脚本当中特别注意 不要拷贝整个文件内容 只需要拷贝banner
部分 如下格式 不然 下次再次运行yarn start
的时候 会疯狂刷新调试页面1
2
3// ==UserScript==
···
// ==/UserScript== -
修改
config/dev.meta.json
文件 require键对应的本地文件 douyu.dev.user.js 的路径 -
至此 项目基本运行调试是没问题了 接下来就是修改 项目信息
-
具体需要编辑的 文件 就是
common.meta.json
dev.meta.json
package.json
🏝️编码注意事项
-
index.js 是项目入口
- 项目调试页面代码 在于
mock
文件夹的的源文件 可随意修改定制 - 项目油猴 入口在于
app.ts
index.ts
是通过import app
app()
进入油猴源码入口的- 所以一切的逻辑代码 都必须编辑在
app.ts
的const app = () => {};
中 - 比如
GM_registerMenuCommand('test', () => console.log('test'));
GM_registerMenuCommand
只能在const app = () => {};
中解析调用否则 无法识别GM_registerMenuCommand
函数
- 项目调试页面代码 在于
-
菜单栏 少量HTML标签元素 导入
- 依赖
core-js
html-loader
1
2
3
4
5
6
7npm install --safe-dev core-js
npm install --safe-dev html-loader
或者
yarn add core-js --dev
yarn add html-loader --dev - 配置文件
webpack.config.base.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21module: {
rules: [
{
test: /\.html$/i,
use: {
loader: 'html-loader',
options: {
sources: {
list: [
'...', // 所有默认支持的标签和属性,这个一定要加上,不然就只会检测a标签了
{
tag: 'a',
attribute: 'href',
type: 'src',
},
],
},
minimize: true,
},
},
},]}- 逻辑代码
1
2
3
4// 其中 import 出来的 menu 是字符串
import menu from './menu.html';
let menuWrapper = document.getElementById('menuWrapper');
menuWrapper.innerHTML = menu; - 依赖
Here is a footnote reference,[1] and another.[2]
🏝️调试编译打包指令
-
package.json
可自行定义
1 | "scripts": { |