为什么忽略库上设置的 "developmentMode" 标志?

Why is the "developmentMode" flag set on a library ignored?

我有一个随机出现的问题(还没有真正弄清楚如何重现这个问题,它不规律地发生)开发模式根本不起作用的 GAS 库。

无论库中保存文件的实际状态如何,库的静态版本总是被加载。清单文件是有序的,我在两个帐户(A 和 B)上有两个脚本,它们使用库 C 作为资源。

脚本 A 清单:

{
  "timeZone": "Europe/Paris",
  "dependencies": {
    "libraries": [{
      "userSymbol": "lib",
      "libraryId": "<id>",
      "version": "33",
      "developmentMode": true
    }]
  },
  "exceptionLogging": "STACKDRIVER"
}

脚本 B 清单:

{
  "timeZone": "Europe/Paris",
  "dependencies": {
    "libraries": [{
      "userSymbol": "lib",
      "libraryId": "<id>",
      "version": "33",
      "developmentMode": false
    }]
  },
  "exceptionLogging": "STACKDRIVER"
}

该库的静态版本为 33,在静态版本之后进行了许多更改和保存。我希望脚本 A 加载最新的更改,但它与脚本 B 一样静态。

我搞不懂这是怎么回事。

如果重要的话,我正在使用 clasp 进行同步。如果我放弃 clasp 并使用内置编辑器来做所有事情,在手动保存新版本、进行一些编辑然后加载脚本 A 之后,它似乎神奇地开始在开发模式下工作。

之后使用 clasp(甚至从命令行创建更新的静态版本)会工作一段时间,然后随机停止。稍后在随机时间段执行一个随机 clasp version 命令会将库冻结在新创建的静态版本,随后 clasp push 将完成,文件已同步,但开发模式将不再强制执行(即使它打开了)。

这意味着 clasp 没有正确同步,但事实并非如此 - 在浏览器编辑器中打开脚本显示所有文件都已正确同步、保存,并显示远远超过静态版本和“开发模式”开关相应地遵循清单文件。


进一步分析,我怀疑这可能与Google的缓存服务器有关?在这种情况下:同一个电子表格,两个不同 Google 帐户上的两个用户以开发模式访问库,一个实际看到开发,另一个是静态的。清除本地浏览器缓存和应用程序数据没有帮助,所以它必须在交付端。

Google 延迟更新所有用户和所有使用该库的项目的开发版本,也许吧?

总结

是什么让库再次开始在开发模式下工作?

正在浏览器编辑器中打开库并手动保存新版本。有时必须多次执行才能工作。

是什么导致库在开发模式下停止工作?

据我所知,clasp version但并不总是。昨天我从命令行用“clasp version”保存了 5-6 个版本,随后的 clasp push 命令确实出现在开发模式中。是随机的第 N 个 clasp version 破坏了东西。

根据尝试解决这个问题的步骤,没有明确的解决方案。

尝试的步骤:

push 之后从 clasp

重新发布

运行 clasp deploy -V <version> -id <deployment-id>

结果:

如果您是 G Suite 帐户的订阅者,请contact the G Suite support寻求帮助。