Tampermonkey 不使用本地 HTTPS 静态文件获取 @require

Tampermonkey doesn't fetch @require using localhost HTTPS static files

预期行为

为了简化开发,我想通过本地主机 HTTP(S) 服务器提供必要的 TM @require 文件。我希望在每次重新加载页面时重新加载这些文件。

实际行为

当我在 TM 编辑器中更新 UserScript 时,这些文件是从本地主机服务器获取的,但是,当加载匹配的 URL 时,它们不会被获取。我不确定这是 TM 缓存的东西还是我这里做错了什么。

规格

脚本

为了分离 JS 文件中的关注点,UserScript header 与其他逻辑分离。使用@required 导入必要的文件。这是粘贴在 TM 编辑器中的 UserScript 文件的内容:

// ==UserScript==
// @name            myName
// @description     myDescription
// @author          robinlarondelle
// @version         0.1
// @namespace       myNameSpace
// @homepage        myHomePage
// @include         *linkedin.com/*
// @icon            https://www.google.com/s2/favicons?domain=linkedin.com
// @grant           window.onurlchange
// @require         https://localhost:3000/public/myScript.user.js
// ==/UserScript== 

localhost HTTPS 静态文件服务器是一个 Node.JS 服务器,带有启用 HTTPS 的自签名证书。在提供我的 .pem 文件后使用 Postman 和 FireFox 时,服务器按预期工作。如有必要,我可以提供有关服务器的更多详细信息,但我认为问题不在于此。

需要指出的事情:

FireFox 禁止从 TM 访问本地文件(参见此 comment)。所以这个问题的一个替代方法是只使用 Chrome,因为它支持访问本地文件。但是,我想避免使用本地文件,因为有多个开发人员在处理这个项目。我也不想将开发限制在一种特定的浏览器上。

主要的 question/problem 是:为什么 @require 来自 UserScript header 只在 TM 编辑器中的脚本保存中获取所需的文件,而不是在页面重新加载时 URL匹配?这是正常行为 and/or 我们可以关闭它吗?

我也在 Tampermonkey 存储库上创建了一个 GitHub issue,有人提出了解决方案:

将“外部”更新频率设置为“始终”。这将在页面重新加载时获取 @require 标记。然而,这并不 运行 顺利,大多数时候它将在 页面重新加载后 获取(因此你必须重新加载两次)。

无论如何,这解决了我的问题。