沉冰浮水

沉冰浮水

做最终到的事,成为最终成为的人!
github
bilibili
mastodon
zhihu
douban

「折騰」使用 rollup.js 模塊化編寫 GM 腳本

五月份了,又可以領大會員 B 幣了,不過 B 站又改了些東西,導致我之前寫的提醒腳本也要相應的修改;

「- 很多說明要詳細到什麼程度也是好難把握 -」

腳本獲取及說明見:

「GM 腳本」大會員 B 幣領取提醒_電腦網絡_沉冰浮水


2022-09-12:

弄了個 rollup 插件出來:

wdssmq/rollup-plugin-monkey: 使用 rollup 開發「GM_腳本」:

視頻演示:

「小代碼」rollup.js 開發「GM_腳本」演示_哔哩哔哩_bilibili:


一直以來,針對同一個網站的功能腳本會塞進一個文件裡,比如之前 B 站的腳本有 330 行,維護修改是真的痛苦;

「果然還是拆成小文件然後自動拼接會比較方便吧!」 ← 雖然這麼想,但是咸魚星人什麼的。。

好在前不久終於開始填這個坑了,使用的方案就是「rollup.js」;

rollup.js本身的教程可參考文末推薦,事實上終於決定水出本文也是因為阮一峰碰巧在這個時機寫了介紹;


如果你也想用來構建「GM_腳本」則可以參考下我的使用姿勢;

  • GM_腳本的應用環境是瀏覽器,所以對應的輸出格式是format: 'iife'
  • GM_腳本開頭需要加入==UserScript== …… ==/UserScript==註釋,可以作為bannerrollup.js拼接進來;
  • 配置定義文件rollup.config.js支持從外部引入內容作為參數,所以banner定義值可以寫在一個單獨的文件裡,比如src/__info.js,同樣作為腳本命名的name也可以由該文件提供;
  • 所以不同腳本項目可以使用同樣的rollup.config.js內容,而只需要修改src/__info.js中的定義;
  • 我弄了份empty\_def作為初始項目,除了src/__info.js外還有src/_base.js,封裝了各種「初始常量或函數」;「- 就是風格不太統一的感覺 -」
  • src/main.js中可以使用import _bcoin from './_bcoin';單純拼接不同文件進來,雖然會得到一行黃字:Import of non-existent exports,不過我們就是要這樣用;

userscript/empty_def:https://github.com/wdssmq/userscript/tree/master/empty_def

userscript/bilibili:https://github.com/wdssmq/userscript/tree/master/bilibili「歷史原因,導出文件還是later.user.js,要不要改呢」

最新 B 幣領取提醒:https://github.com/wdssmq/userscript/blob/master/bilibili/src/_bcoin.js「只是提醒,並不能自動領」


打包工具 rollup.js 入門教程 - 阮一峰的網絡日誌:

http://www.ruanyifeng.com/blog/2022/05/rollup.html

Module 的語法 - ES6 教程 - 網道:

https://wangdoc.com/es6/module.html

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。