是否应该缩小仅由用户脚本使用的库?

Should a library used solely by userscripts be minified?

在我的用户脚本中,我经常 @require 一个自写的 javascript 库。我想知道这会产生多少负载。每次执行用户脚本时是否(重新)加载库?还是只加载第一次,然后缓存?缩小它会有很大的不同吗?

我查看了 tampermonkey docs,但他们没有对此进行详细说明。他们只声明图书馆 "is loaded and executed before the script itself starts running".

缩小这个库有多重要?由于我经常对库进行更改,因此我宁愿避免每次都将其缩小的额外步骤。缩小这样的库有什么优点和缺点?

此外,脚本检查频率的精确细节也会发生变化。但它 usually/is supposed/used 的工作原理如下:

  1. 安装 脚本后 @require 库被提取并保存到磁盘(现在作为扩展数据的一部分存储在 LevelDB 数据库中)。
  2. @require 字符串改变时,重新获取脚本。
  3. (可能吗?)如果 脚本本身已更新,则会重新获取脚本 (版本更改)
  4. 曾几何时,Tampermonkey 可能会在每个脚本中获取脚本 运行?!
  5. Tampermonkey 用于获取 @required 个脚本,每 file:// URL 秒,作为对开发人员的帮助。但是这停止工作并且不确定当前状态是什么。

重点是名义上,所需的文件(使用机外URL)应该运行来自磁盘或缓存并且速度非常快。

所以取舍:

不要最小化因为:

  • 在用户脚本场景中,通常不会产生任何性能差异。
  • 脚本更容易调试。
  • develop/deploy 过程中的步骤更少。

尽量减少因为:

  • @required 脚本有很大的安装基础,托管服务器负载是一个问题。
  • 文件足够大,最小化可以节省大量 space,比如 100K。
  • 该文件也“正常”使用(<script> 标签的 EG)——因此带宽更为重要。 (不是每个人都有高速连接等)
  • 您想让别人更难“窃取”您宝贵的代码。 (出于完整性考虑,我不推荐这样做。)