检查执行是否在调试模式下运行



有没有办法检查Google Apps Script是否在调试模式下运行?

例如,我有一个使用prompt的脚本,但在调试模式下,我想为这些提示设置预定义的值。

尝试使用 debugMyFunc(( 调试 myfunc((;

function debugMyFunc() {
myfunc('debug');
}
function myfunc(mode) {
var mode=mode||'run';
}

问题

如果您正在寻找调试环境的模拟,那么不,没有专用的方法 - 唯一的模式是生产(尽管某些服务(如CardServiceUrlFetchApp确实有调试方法(。

解决方法

最接近环境的事情是使用PropertiesService来存储、更新和检索脚本/用户属性。您可以保留每个用户的设置,或者每个脚本(更接近环境变量是什么(保留设置,并根据需要使用它们。

因此,要检查您是否在调试模式下运行,您可以从存储加载属性(最好在启动时以减少属性读取/写入(,检查类似mode的内容,然后传递结果 + 更改并根据需要持久化。

一个简单的例子:

/**
* @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
}

引用

  1. PropertiesService参考
  2. 资料

最新更新