Google apps script 调用库中的另一个函数时,内部函数出现语法错误
我对引用库的脚本有问题。我的问题不是连接到库,而是我的脚本调用了一个函数,但当它运行时,它会在我没有引用的函数上出错 在表A中,我有以下代码:Google apps script 调用库中的另一个函数时,内部函数出现语法错误,google-apps-script,dependencies,v8,Google Apps Script,Dependencies,V8,我对引用库的脚本有问题。我的问题不是连接到库,而是我的脚本调用了一个函数,但当它运行时,它会在我没有引用的函数上出错 在表A中,我有以下代码: function DataPull() { MasterScriptLibrary.DataPullBillable() } 在MasterScriptLibrary(项目全名为2020 MasterScriptLibrary)中,我有两个不同的函数(它们根本不相互引用),分别称为convertPersonal和datapullbilable
function DataPull() {
MasterScriptLibrary.DataPullBillable()
}
在MasterScriptLibrary
(项目全名为2020 MasterScriptLibrary)中,我有两个不同的函数(它们根本不相互引用),分别称为convertPersonal
和datapullbilable
当上述函数从工作表A运行时,我收到一条错误消息:
语法错误。(第66行,文件“ConvertPersonal”,项目“2020主脚本库”)
图书馆第66行:
var data = activeRange.filter(element => element.join("") != "");
知道这里会发生什么吗?问题 当GoogleApps脚本项目中需要库时,它将在调用脚本的环境中运行。因此,如果调用脚本的运行时不支持库使用的任何语言功能/语法,它将抛出相应的错误 运行时 自GAS从运行时切换到运行时以来,最常见的问题之一是由于尝试使用ES6功能引起的(一些功能甚至在旧功能中也得到了支持,但自大修以来,开发人员资源中就没有了全面的列表) 语法错误 您试图使用旧版运行时不支持的语法,因此出现了
SyntaxError
。消息直接指向问题(第66行),但没有提供错误信息,因此混淆是可以理解的(事实上,它是有效的ES6语法)
实际问题是存在箭头函数
检查运行时
要检查使用了哪个运行时(如果使用脚本编辑器,除了顶部的斑块),请打开清单文件(appsscript.json
)并找到runtimeVersion
字段,它将设置为“V8”或“弃用的ES5”(Rhino)
较新的脚本保证使用V8,但您必须手动将上述字段设置为
V8
(您也可以根据需要“降级”)或选择“运行”菜单中的选项,才能使用较旧的脚本。[在您之前开始注释-错误看起来就像在Rhino运行时使用箭头函数]与主管达成一致-您需要说明如何声明convertPersonal
。库的第66行出现语法错误(确切的错误消息)。如果您认为语法有效,请检查是否在非V8脚本中使用ES6功能,它们会导致语法错误。如果您在脚本清单中显示库的标识符(尽管您应该收到另一个关于不匹配的错误),这也会很有帮助;第66行:var data=activeRange.filter(element=>element.join(“”!=“”));版本是V8,我想我是根据你的问题想出来的!主脚本文件是V8,但“工作表A”不是。一旦我把它们设置成同一个版本,原始脚本就生效了。