[油猴脚本开发指南]NPM发布魔改包
# 注册账号https://www.npmjs.com/signup
输入你的名字、邮箱、密码
然后进入邮箱
验证你的邮箱。
# 登录账号
安装npm
在cmd里输入npm login
如果出现500 Internal Server Error则更换镜像源
npm config set registry https://registry.npmjs.org/
再次登录
![图片.png](data/attachment/forum/202110/14/142001k3qzfvofc4k91xx3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")
我们可以cd进一个目录
![图片.png](data/attachment/forum/202110/14/141949hgh4fgq5ulq3gfz5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")
创建并进入目录
![图片.png](data/attachment/forum/202110/14/142055upo58z5r3d3nnpn8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")
输入npm init
然后输入一些相关的信息
# 代码
我们新建一个index.js
这里我以toastr为例
首先贴入
```javascript
https://raw.githubusercontent.com/lihengdao666/Modify-Tampermonkey-Libs/master/toastr.js
```
的代码
因为toastr还需要一个css
所以我们书写代码在
![图片.png](data/attachment/forum/202110/14/144544eblkk86zdkkb8kwk.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")
```javascript
let injecttoastrcss = document.createElement("style");
injecttoastrcss.innerHTML =`CSS代码`;
toastrwd.document.body.appendChild(new_element);
```
CSS代码中填写我们的CSS代码,然后保存
这里为了方便,toastr需要jq,所以我又在文件里引入了jq
# 发布
输入npm publish等待一会
![图片.png](data/attachment/forum/202110/14/144635xevk4e1qq65gim4h.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")
发布成功
如果我们想更新版本,就修改package.json的version版本号,再次npm publish发布
# 获取cdn地址
https://cdn.jsdelivr.net/npm/<库名字>
这里我的是https://cdn.jsdelivr.net/npm/tampermonkey-toastr
# 更新jsdelivr地址
访问https://purge.jsdelivr.net/npm/<库名字>
经过测试,即使强制缓存偶尔也无法正常更新
可以https://cdn.jsdelivr.net/npm/tampermonkey-toastr@<最新版本号>
https://cdn.jsdelivr.net/npm/tampermonkey-toastr@1.0.5
# 测试
访问https://greasyfork.org/zh-CN/help/external-scripts输入你的地址进行测试
![图片.png](data/attachment/forum/202110/14/144813j6uiqljpe63u60ie.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")
@cxxjackie 哥哥哥哥
我在一之的提点下通过gf检测require了! 李恒道 发表于 2021-10-14 16:37
@cxxjackie 哥哥哥哥
我在一之的提点下通过gf检测require了!
好像这种可以随时更新的js要加上MD5,不然还是有被举报的风险。 cxxjackie 发表于 2021-10-14 20:33
好像这种可以随时更新的js要加上MD5,不然还是有被举报的风险。
npm不能随时更新吧,要带版本号的,除非是直接代理github,不过gf也不准代理github的 cxxjackie 发表于 2021-10-14 20:33
好像这种可以随时更新的js要加上MD5,不然还是有被举报的风险。
加上特定版本号你说行不,这样也能锁死版本没法随时更新吧 李恒道 发表于 2021-10-14 20:43
加上特定版本号你说行不,这样也能锁死版本没法随时更新吧
有版本号应该可以吧,不过我记得之前看到有人脚本因为require被举报了,审核一直不给过,最后管理员给他说加上MD5,感觉有比没有好,毕竟不同人审核可能有不同的标准。 cxxjackie 发表于 2021-10-14 21:11
有版本号应该可以吧,不过我记得之前看到有人脚本因为require被举报了,审核一直不给过,最后管理员给他 ...
还有一个问题就是哥哥你研究过vue源码么
过阵子准备研究研究开vue劫持篇了
想拜托哥哥困难的篇章帮忙校对下 李恒道 发表于 2021-10-14 21:56
还有一个问题就是哥哥你研究过vue源码么
过阵子准备研究研究开vue劫持篇了
想拜托哥哥困难的篇章帮忙校对 ...
没研究过。。。目前没碰到需要劫持vue的情况,倒是react的更常见。
页:
[1]