如何使 Google Apps 脚本库始终提供最新版本

How to make Google Apps Script library always serve the latest version

我有一个 Google Apps 脚本库。其他几个用户订阅了该库。当我更新库时,我想将最新的更改推送给订阅者,而不需要用户采取任何额外的步骤,也许,一些初始批准。

这可能吗?如果可以,怎么做?

一般来说答案是否定的:用户总是必须从 Resources > Libraries... 菜单中 select 他们想要使用的版本。 在您的用户对库脚本具有编辑权限的特定情况下,他们可以始终使用打开 developer mode.

的最新版本

Anyone who has editor-level access to the script has the latest changes made to the files in the library project even if it was not saved as a version.

参考:

Libraries

,我可以确认你的目标如下。

  • 您想始终让用户使用最新版本的库而不使用开发者模式。

为此,这个答案怎么样?

在这个回答中,我想提出一个使用 2 个库的解决方法。

用法:

1。创建 2 个独立脚本。

请创建 2 个独立脚本。在这种情况下,这些是脚本 "A" 和 "B".

  • 脚本 "A" 用作用户使用的库。
  • 脚本"B"作为库在脚本"A"上使用。

在这种情况下,用户使用脚本 "A" 作为库。您通过修改脚本 "B".

来开发库

2。安装你开发的库。

请将以下脚本复制并粘贴到脚本"B"。并且,请在脚本编辑器的 "File" -> "Manage versions" 处提供版本。

function myFunction(e) {
  return "ok: " + e;
}

3。安装库用户使用。

  1. 将以下脚本复制并粘贴到脚本"A".

    function myFunction(e) {
      return lib.myFunction(e);
    }
    
  2. 安装 脚本库 "B"。请打开 "Development mode"。在这种情况下,它假设 "Identifier" 是 lib.

    • 这样,当您修改脚本"B"时,此脚本"A"可以使用您修改的最新脚本。
    • 这是用于实现您的目标的包装库。
  3. 在脚本编辑器 "File" -> "Manage versions" 处将版本提供给 脚本 "A"

4。在用户端安装库。

安装脚本"A"作为用户端的库。届时请关闭"Development mode"。在这种情况下,它假设 "Identifier" 是 Lib。您可以使用以下脚本。

function myFunction() {
  const res = Lib.myFunction("sample");
  console.log(res)  // "ok: sample" is returned.
}

这样,当您修改脚本"B"时,在脚本"A"处,可以使用最新的脚本。另一方面,用户可以在不使用开发者模式的情况下使用常量版本使用最新的库。