我有大约15-20个Google Apps脚本项目,它们都使用相同的全局变量列表 .
我所做的是定义项目中第一个脚本文件顶部的所有全局变量,然后将代码块复制并粘贴到每个项目的同一位置 . 因此,如果我在其中进行更改,我会将整个内容复制并粘贴到其余内容中 . 这很费时间 .
有一个更好的方法吗?它是否使用Libraries?有没有人使用库来跨项目定义全局变量?
使用库共享常量是在Google Apps脚本之间共享常量对象的最有效方法 . 一些警告:
使用ConstLib的所有脚本都需要使用"Development Mode" ON,否则您仍需要手动更新每个脚本 . (风险:保存一个错误版本的ConstLib,所有脚本都会立即中断 . )
常量是库的属性,因此需要使用库名称来引用,例如,
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
1 回答
使用库共享常量是在Google Apps脚本之间共享常量对象的最有效方法 . 一些警告:
使用ConstLib的所有脚本都需要使用"Development Mode" ON,否则您仍需要手动更新每个脚本 . (风险:保存一个错误版本的ConstLib,所有脚本都会立即中断 . )
常量是库的属性,因此需要使用库名称来引用,例如,
在现有脚本中,您可能会发现将现有常量块更改为对ConstLib的引用很方便,因此您无需触及其余代码 . 例如
示例
ConstLib
Use Constlib
Logging Output