Javascript 为什么是";“发展模式”;忽略库上设置的标志?

Javascript 为什么是";“发展模式”;忽略库上设置的标志?,javascript,google-apps-script,clasp,Javascript,Google Apps Script,Clasp,我遇到了一个随机发生的问题(还没有真正弄清楚如何重现这个问题,它发生的不规则),GAS库的开发模式根本不起作用 无论库中已保存文件的实际状态如何,都始终加载库的静态版本。清单文件是有序的,我在使用库C作为资源的两个帐户(A和B)上有两个脚本 为清单编写脚本: { "timeZone": "Europe/Paris", "dependencies": { "libraries": [{ &q

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

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

为清单编写脚本:

{
  "timeZone": "Europe/Paris",
  "dependencies": {
    "libraries": [{
      "userSymbol": "lib",
      "libraryId": "<id>",
      "version": "33",
      "developmentMode": true
    }]
  },
  "exceptionLogging": "STACKDRIVER"
}
{
  "timeZone": "Europe/Paris",
  "dependencies": {
    "libraries": [{
      "userSymbol": "lib",
      "libraryId": "<id>",
      "version": "33",
      "developmentMode": false
    }]
  },
  "exceptionLogging": "STACKDRIVER"
}
{
“时区”:“欧洲/巴黎”,
“依赖项”:{
“图书馆”:[{
“userSymbol”:“lib”,
“libraryId”:“,
“版本”:“33”,
“发展模式”:正确
}]
},
“例外记录”:“堆栈驱动程序”
}
脚本B清单:

{
  "timeZone": "Europe/Paris",
  "dependencies": {
    "libraries": [{
      "userSymbol": "lib",
      "libraryId": "<id>",
      "version": "33",
      "developmentMode": true
    }]
  },
  "exceptionLogging": "STACKDRIVER"
}
{
  "timeZone": "Europe/Paris",
  "dependencies": {
    "libraries": [{
      "userSymbol": "lib",
      "libraryId": "<id>",
      "version": "33",
      "developmentMode": false
    }]
  },
  "exceptionLogging": "STACKDRIVER"
}
{
“时区”:“欧洲/巴黎”,
“依赖项”:{
“图书馆”:[{
“userSymbol”:“lib”,
“libraryId”:“,
“版本”:“33”,
“发展模式”:错误
}]
},
“例外记录”:“堆栈驱动程序”
}
该库处于静态版本33,在静态版本之后进行了几十次更改和保存。我希望脚本A加载最新的更改,但它和脚本B一样是静态的

我不知道发生了什么事

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

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

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


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

谷歌在所有用户和所有使用该库的项目中更新开发版本都有延迟,也许吧

摘要

是什么使库重新开始以开发模式工作

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

是什么使库停止在开发模式下工作


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

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

尝试的步骤: 从卡扣中按
后重新发布
正在运行
clasp部署-V-id

结果:
如果您是G套件帐户的订户,请寻求帮助。

如果您运行
clasp deploy-V-id
,您的项目是否会重新发布?正如@ZektorH所述,我会尝试重新部署。我还没有收到您的确切问题,但我确实注意到,发布的web应用程序在运行
clasp push
后会失败,除非我重新部署。(重新部署同一个版本有效。)我很想及时回复这是否有用,但它现在似乎工作正常,哈哈。我必须等待它再次挂起,我不打算开始滥发版本来测试这一点。我不需要部署,所以我没有注意到使用这种方法时的行为。谢谢你们两位的建议,我会在这里检查它是否有效。@ZektorH遗憾的是,不,重新部署项目并不能解决我的问题。只是花了一下午的时间修改部署,但仍然无法解决这个问题。静态版本现在已经通过
clapdeploy-V42-i”“-d“production”部署
static脚本B加载V42静态。滚动脚本A加载V42静态(应该是V42最新版本)。奇怪。@ZektorH进一步分析后,我必须得出结论,这与谷歌的缓存服务器有关。在这个场景中:同一个电子表格,两个用户在两个不同的Google帐户上以开发模式访问库,一个用户实际看到了开发,另一个用户是静态的。清除本地浏览器缓存和应用程序数据没有帮助,因此它必须在交付端。Google在所有用户和所有使用该库的项目中更新开发版本时都出现了延迟。我确实注意到,自从我在部署PowerShell脚本中添加了
clasp deploy
行以来,随机问题的频率已经降低了。:)不管部署如何,它偶尔仍然会挂起,但更常见的情况是后续部署会将脚本推到自由位置(而仅仅是
扣推
将完全无用)。再次感谢!