首页 文章

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

提问于
浏览
4

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

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

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

1 回答

  • 8

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

    • 使用ConstLib的所有脚本都需要使用"Development Mode" ON,否则您仍需要手动更新每个脚本 . (风险:保存一个错误版本的ConstLib,所有脚本都会立即中断 . )
      screenshot

    • 常量是库的属性,因此需要使用库名称来引用,例如,

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

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

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

    示例

    ConstLib

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

    Use Constlib

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

    Logging Output

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

相关问题