李恒道 发表于 2021-10-14 15:01:32

[油猴脚本开发指南]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")

李恒道 发表于 2021-10-14 16:37:44

@cxxjackie 哥哥哥哥
我在一之的提点下通过gf检测require了!

cxxjackie 发表于 2021-10-14 20:33:29

李恒道 发表于 2021-10-14 16:37
@cxxjackie 哥哥哥哥
我在一之的提点下通过gf检测require了!

好像这种可以随时更新的js要加上MD5,不然还是有被举报的风险。

王一之 发表于 2021-10-14 20:42:53

cxxjackie 发表于 2021-10-14 20:33
好像这种可以随时更新的js要加上MD5,不然还是有被举报的风险。
npm不能随时更新吧,要带版本号的,除非是直接代理github,不过gf也不准代理github的

李恒道 发表于 2021-10-14 20:43:42

cxxjackie 发表于 2021-10-14 20:33
好像这种可以随时更新的js要加上MD5,不然还是有被举报的风险。

加上特定版本号你说行不,这样也能锁死版本没法随时更新吧

cxxjackie 发表于 2021-10-14 21:11:43

李恒道 发表于 2021-10-14 20:43
加上特定版本号你说行不,这样也能锁死版本没法随时更新吧

有版本号应该可以吧,不过我记得之前看到有人脚本因为require被举报了,审核一直不给过,最后管理员给他说加上MD5,感觉有比没有好,毕竟不同人审核可能有不同的标准。

李恒道 发表于 2021-10-14 21:56:19

cxxjackie 发表于 2021-10-14 21:11
有版本号应该可以吧,不过我记得之前看到有人脚本因为require被举报了,审核一直不给过,最后管理员给他 ...

还有一个问题就是哥哥你研究过vue源码么
过阵子准备研究研究开vue劫持篇了
想拜托哥哥困难的篇章帮忙校对下

cxxjackie 发表于 2021-10-14 22:24:26

李恒道 发表于 2021-10-14 21:56
还有一个问题就是哥哥你研究过vue源码么
过阵子准备研究研究开vue劫持篇了
想拜托哥哥困难的篇章帮忙校对 ...

没研究过。。。目前没碰到需要劫持vue的情况,倒是react的更常见。
页: [1]
查看完整版本: [油猴脚本开发指南]NPM发布魔改包