【问题标题】:Defining globals in Google Apps Script that can be used across multiple projects在可跨多个项目使用的 Google Apps 脚本中定义全局变量
【发布时间】:2014-10-08 23:18:57
【问题描述】:

我有大约 15-20 个 Google Apps 脚本项目,它们都使用相同的全局变量列表。

我所做的是在项目的第一个脚本文件的顶部定义所有全局变量,然后将代码块复制并粘贴到每个项目的同一位置。因此,如果我对其中一个进行更改,我会将整个内容从那个复制并粘贴到其余部分。它变得很耗时。

有没有更好的方法来做到这一点?是否使用Libraries?有没有人使用库来定义跨项目的全局变量?

【问题讨论】:

    标签: javascript google-apps-script global-variables libraries


    【解决方案1】:

    使用共享常量库是在 Google Apps 脚本之间共享常量对象的最有效方式。一些警告:

    • 所有使用 ConstLib 的脚本都需要在“开发模式”开启的情况下执行此操作,否则您仍需要手动更新每个脚本。 (风险:保存有缺陷的 ConstLib 版本,您的所有脚本都会立即中断。)
    • 常量是库的属性,所以需要使用库名来引用,例如

      var log = SpreadsheetApp.openById( ConstLib.auditLogId );
      

      在您现有的脚本中,您可能会发现将现有常量块更改为对 ConstLib 的引用很方便,因此您无需接触剩余的代码。例如

      var auditLogId = ConstLib.auditLogId;
         . . .
      var log = SpreadsheetApp.openById( auditLogId );
      

    示例

    ConstLib

    var roses = "Red", violets = "Blue";
    

    使用 Constlib

    function myFunction() {
      Logger.log(ConstLib.roses);
      Logger.log(ConstLib.violets);
    }
    

    日志输出

    [14-10-09 14:51:47:258 EDT] Red
    [14-10-09 14:51:47:259 EDT] Blue
    

    【讨论】:

    • 为什么var可以从不同的库中被引用,而const却不能被引用?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-29
    • 1970-01-01
    • 2010-11-28
    相关资源
    最近更新 更多