Google apps script 检查执行是否在调试模式下运行
有没有办法检查GoogleApps脚本是否在调试模式下运行 例如,我有一个脚本,我使用了Google apps script 检查执行是否在调试模式下运行,google-apps-script,environment,Google Apps Script,Environment,有没有办法检查GoogleApps脚本是否在调试模式下运行 例如,我有一个脚本,我使用了提示符,但在调试模式下,我想为这些提示符设置预定义值。尝试使用debugMyFunc()调试myfunc() 问题 如果您正在寻找调试环境的模拟,那么没有,没有专用的方法-唯一的模式是生产(尽管有些服务,如和,确实有调试方法) 解决方法 最接近环境的是使用PropertiesService存储、更新和检索脚本/用户属性。您可以按每个用户或更接近环境变量的每个脚本保留设置,并根据需要使用它们 因此,要检查是否在
提示符
,但在调试模式下,我想为这些提示符设置预定义值。尝试使用debugMyFunc()调试myfunc()
问题 如果您正在寻找调试环境的模拟,那么没有,没有专用的方法-唯一的模式是生产(尽管有些服务,如和,确实有调试方法) 解决方法 最接近环境的是使用
PropertiesService
存储、更新和检索脚本/用户属性。您可以按每个用户或更接近环境变量的每个脚本保留设置,并根据需要使用它们
因此,要检查是否在调试模式下运行,可以从存储中加载属性(最好是在启动时,以减少属性的读/写),检查类似于模式的内容,然后根据需要传递+更改和持久化结果
一个简单的例子:
/**
* @returns {object}
*/
function getEnvironment() {
const store = PropertiesService.getScriptProperties();
const env = JSON.parse(store.getProperty("env") || "{}");
env.Modes = Object.freeze({
Debug : 1,
Prod : 2
});
return env;
}
然后,在主脚本中:
function onOpen() {
let { mode, Modes } = getEnvironment();
if(mode === Modes.Debug) {
//do something in debug
}
mode = Modes.Prod;
//continue in production
}
参考资料
PropertiesService
好主意!我一直在考虑使用一个布尔值var debug=true
,但有一个“危险”就是不考虑根据上下文(从电子表格或通过调试器执行)更新变量。。。我认为你的解决方案更好。
function onOpen() {
let { mode, Modes } = getEnvironment();
if(mode === Modes.Debug) {
//do something in debug
}
mode = Modes.Prod;
//continue in production
}