有没有办法检查Google Apps Script是否在调试模式下运行?
例如,我有一个使用prompt
的脚本,但在调试模式下,我想为这些提示设置预定义的值。
尝试使用 debugMyFunc(( 调试 myfunc((;
function debugMyFunc() {
myfunc('debug');
}
function myfunc(mode) {
var mode=mode||'run';
}
问题
如果您正在寻找调试环境的模拟,那么不,没有专用的方法 - 唯一的模式是生产(尽管某些服务(如CardService
和UrlFetchApp
确实有调试方法(。
解决方法
最接近环境的事情是使用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
}
引用
PropertiesService
参考
资料