【问题标题】:App script web change version for each deploy每次部署的应用脚本 Web 更改版本
【发布时间】:2018-03-08 10:19:00
【问题描述】:

我为我的 google sheet 脚本创建了一个网络应用程序。 我使用版本 1 部署它并且它可以工作

现在我想进行持续更改并部署我的更改, 我需要为我部署的每个更改增加版本吗?或者我可以更新当前版本吗?

另外,有没有办法以编程方式获取当前版本?

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    对于您的情况,我想介绍一下,因为我有一个我也使用的解决方法。

    对于问题 1:

    一般来说,当更新Web Apps的脚本时,需要增加项目版本,并用新版本重新部署Web Apps。

    但如果您想在不增加版本的情况下部署 Web 应用程序,作为一种变通方法,您可以通过使用库来实现。此解决方法的流程如下。

    1. 创建 2 个项目。
      • 一个是部署Web Apps的项目。
        • 假设这是您现在正在使用的项目。
      • 另一个项目用作库。请将此创建为独立项目。
        • 请创建一个版本。
          • 在脚本编辑器上
            • 文件 -> 管理版本...
            • 输入描述后,请点击“保存新版本”。
        • 请复制此脚本 ID。这用于安装库。
    2. 对于部署 Web 应用程序的项目。
      • 请将库项目安装为库。
        • 在脚本编辑器上
          • 资源 -> 库...
          • 对于“添加库”,请输入库项目的文件ID。
          • 开启“开发模式”。
          • 将版本设置为保存的版本。
          • 在本示例中,请将“Identifier”设置为“lib”。
      • 请复制并粘贴以下函数。在这个项目中,脚本只有这个。 请在复制粘贴后保存项目。
        • function doGet(e) {return lib.main(e)}
      • 请将 Web 应用部署为新版本。
      • 此设置后,您无需修改​​此项目。
    3. 对于用作库的项目。
      • 请复制并粘贴以下函数。
        • function main(e) {return yourfunction(e)}
        • yourfunction(e) 是您正在使用的项目中的函数。

    在此解决方法中,当您要修改脚本时,请修改库项目。这样,当更新库时,部署 Web 应用程序的项目会自动更新,因为在安装库时打开了“开发模式”。此更新也反映到 Web 应用程序。所以Web Apps的脚本可以在不增加版本的情况下更新。

    作为示例,在进行上述设置后,两个项目的脚本如下:

    对于部署 Web Apps 的项目。

    function doGet(e) {
      return lib.main(e);
    }
    

    对于用作库的项目。

    function main(e) {
      return yourfunction(e);
    }
    
    function yourfunction(e) {
    
       do something: The script which is run when users accessed to Web Apps.
    
      return something
    }
    

    关于问题 2:

    为了检索项目的当前版本,您可以使用 Apps Script API。 tehhowch 也回答了这个问题。在最近的更新中,用户必须能够检索和创建项目版本。通过使用它,您可以实现这一点。所需范围为https://www.googleapis.com/auth/script.projectshttps://www.googleapis.com/auth/script.projects.readonly

    检索版本列表的端点如下。
    GET https://script.googleapis.com/v1/projects/### scriptId ###/versions
    
    如果要使用脚本创建新版本,可以使用以下端点。
    POST https://script.googleapis.com/v1/projects/### scriptId ###/versions
    

    请求正文是

    {
     "versionNumber": 3,
     "description": "sample description"
    }
    

    参考资料:

    如果这对你没有用,我很抱歉。

    【讨论】:

    • 很好的答案!这解决了我的两个问题!由于我不是主工作表的所有者,因此我可以在无需所有权或要求“其他人”部署我的更改的情况下更新 Web 应用程序。
    • @Nir 我也遇到过同样的情况。所以我可以介绍一下。我很高兴你的问题得到了解决。也谢谢你。
    【解决方案2】:

    为apps脚本创建网络应用程序时,给出了两个链接:

    1. exec 结尾的那个只会加载指定的发布版本的代码。
    2. dev 结尾的将加载最新保存的代码(允许在制作新版本之前测试代码)。

    可通过Apps Script API 对已部署版本进行编程控制,并通过clasp 对开发环境进行控制。

    【讨论】:

      【解决方案3】:

      您需要为每次更改增加版本,除非您使用应用程序的“开发”版本,因为它会始终显示最新版本。不过,这只有在您登录帐户时才可见。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-30
        • 2012-02-29
        • 1970-01-01
        • 1970-01-01
        • 2013-10-29
        • 2013-03-15
        相关资源
        最近更新 更多