笑尘天雨 发表于 2022-9-8 01:17:41

搞定rollup插件

终于搞定了,欢迎大家使用,有啥问题请联系
https://www.npmjs.com/package/rollup-plugin-tampermonkey-auto-meta

李恒道 发表于 2022-9-8 11:11:47

不会rollup...
看文档使用方式哥哥这个是做代码解析把使用的api自动推到顶部生成header头了?
牛逼

李恒道 发表于 2022-9-8 11:11:54

@王一之 哥哥来围观

王一之 发表于 2022-9-8 11:20:48

李恒道 发表于 2022-9-8 11:11
不会rollup...
看文档使用方式哥哥这个是做代码解析把使用的api自动推到顶部生成header头了?
牛逼 ...

我也不会rollup

我之前写过一个webpack的,原理也差不多

王一之 发表于 2022-9-8 11:25:37

https://github.com/scriptscat/scriptcat-webpack-plugin

笑尘天雨 发表于 2022-9-8 12:11:45

李恒道 发表于 2022-9-8 11:11
不会rollup...
看文档使用方式哥哥这个是做代码解析把使用的api自动推到顶部生成header头了?
牛逼 ...

是使用的api和注释,这样以后就可以把注释(仅限于可以多个的)写到代码那一行而不必写在头部。
处理的方式比较简单,只判断了是否是GM_开头,如果有人写b.GM_c也会把GM_c提到头,不过还好应该没人会给自己的变量起名GM_开头。至于window和unsafeWindow也是类似的处理,所以也会有类似的问题。
还有就是多个的同名注释处理方式,之前是全部合并去重,后来加入了文件名作为分割,再去重就有些不合适了,所以暂时选择的是全部都有不再去重,可以让你知道哪个文件提出来的对应是啥

笑尘天雨 发表于 2022-9-8 12:12:49

李恒道 发表于 2022-9-8 11:11
不会rollup...
看文档使用方式哥哥这个是做代码解析把使用的api自动推到顶部生成header头了?
牛逼 ...

不要怂,上去就是干,里面专门留了个例子,你可以参考来用

李恒道 发表于 2022-9-8 14:23:52

笑尘天雨 发表于 2022-9-8 12:11
是使用的api和注释,这样以后就可以把注释(仅限于可以多个的)写到代码那一行而不必写在头部。
处理的方式 ...

学到了...
牛逼!

voeoc 发表于 2022-9-13 17:40:43

可以用正则匹配,因为信息头格式是固定的
// ==UserScript==
// ...
// ==/UserScript==
我直接用正则提取放到输出文件了
const REGEXP_STR_HEAD_END = `\\/\\/[\\t ]*==\\/UserScript==(\\r\\n|\\r|\\n)`
const REGEXP_USER_HEADER = new RegExp(
    `\\/\\/[\\t ]*==UserScript==(\\r\\n|\\r|\\n)((?!${REGEXP_STR_HEAD_END}).)*` +
    REGEXP_STR_HEAD_END, "gms");
const userHeader = source_data.match(REGEXP_USER_HEADER)?.at(0) || "";


笑尘天雨 发表于 2022-9-13 20:19:38

voeoc 发表于 2022-9-13 17:40
可以用正则匹配,因为信息头格式是固定的

我直接用正则提取放到输出文件了


我用的rollup自带的ast拿到注释块并且分析组合的。好处就是可以不用管啥格式直接写就行
页: [1] 2 3
查看完整版本: 搞定rollup插件