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

Emp*_*yee 3 javascript global-variables libraries google-apps-script

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

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

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

Mog*_*dad 7

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

  • 使用ConstLib的所有脚本都需要在"开发模式"为ON的情况下执行此操作,否则您仍需要手动更新每个脚本.(风险:保存错误版本的ConstLib,所有脚本都会立即中断.)截图
  • 常量是库的属性,因此需要使用库名称来引用,例如

    var log = SpreadsheetApp.openById( ConstLib.auditLogId );
    
    Run Code Online (Sandbox Code Playgroud)

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

    var auditLogId = ConstLib.auditLogId;
       . . .
    var log = SpreadsheetApp.openById( auditLogId );
    
    Run Code Online (Sandbox Code Playgroud)

ConstLib

var roses = "Red", violets = "Blue";
Run Code Online (Sandbox Code Playgroud)

使用Constlib

function myFunction() {
  Logger.log(ConstLib.roses);
  Logger.log(ConstLib.violets);
}
Run Code Online (Sandbox Code Playgroud)

记录输出

[14-10-09 14:51:47:258 EDT] Red
[14-10-09 14:51:47:259 EDT] Blue
Run Code Online (Sandbox Code Playgroud)