我有一个随机发生的问题(还没有真正设法弄清楚如何重现这个问题,它发生的不规律)与开发模式根本不起作用的 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 帐户的两个用户在开发模式下访问库,一个是实际看到开发,另一个是静态的。清除本地浏览器缓存和应用数据无济于事,因此必须在交付端。
谷歌在更新所有用户和所有使用该库的项目的开发版本时出现延迟,也许吧?
概括
是什么让库 START 再次在开发模式下工作?
在浏览器编辑器中打开库并手动保存新版本。有时必须多次执行才能工作。
是什么让库停止在开发模式下工作?
据我所知clasp version
,但并非总是如此。昨天我从命令行保存了 5-6 个带有“clasp 版本”的版本,后续clasp push
命令确实出现在开发模式下。clasp version
破坏东西的是随机的Nth 。