在Google Apps脚本中定义可在多个项目中使用的全局变量

时间:2014-10-08 23:18:57

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

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

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

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

1 个答案:

答案 0 :(得分:8)

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

  • 使用ConstLib的所有脚本都需要使用"开发模式" ON,否则您仍然需要手动更新每个。 (风险:保存错误的ConstLib版本,所有脚本都会立即中断。)screenshot
  • 常量是库的属性,因此需要使用库名称来引用,例如

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

    在现有脚本中,您可能会发现将现有常量块更改为对ConstLib的引用很方便,因此您不需要触及剩余的代码。 e.g。

    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