为什么忽略库上设置的 "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寻求帮助。
我有一个随机出现的问题(还没有真正弄清楚如何重现这个问题,它不规律地发生)开发模式根本不起作用的 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寻求帮助。