按Google Codelabs教程用clasp创建脚本失败:已登录仍提示需登录
我之前也碰到过一模一样的坑!明明已经在浏览器里点了授权,页面也显示登录成功了,结果运行clasp create还是弹登录提示,试试下面这些排查和解决方法:
检查clasp的登录凭证文件:
clasp的登录信息存在用户主目录下的.clasprc.json文件里,有时候这个文件可能没正确生成或者损坏了。你可以先删除这个文件(Windows在C:\Users\<你的用户名>,Linux/macOS在~/目录下),然后重新运行clasp login,等浏览器授权完成后,再尝试执行clasp create。避免多Google账号冲突:
如果你的浏览器同时登录了多个Google账号,授权的时候很可能选错了账号,导致clasp拿到的凭证无效。建议打开浏览器的无痕/隐私模式,只登录你要用于Apps Script的那个账号,再运行clasp login完成授权,这样能排除账号混淆的问题。确认HOME路径配置:
clasp会根据系统的HOME(Linux/macOS)或USERPROFILE(Windows)环境变量来找凭证文件。你可以先运行对应的命令确认路径:- Linux/macOS:
echo $HOME - Windows(CMD):
echo %USERPROFILE%
确保.clasprc.json确实在这个路径下,如果不在,可能是环境变量配置有问题,需要调整后重新登录。
- Linux/macOS:
更新clasp到最新版本:
旧版本的clasp可能存在登录凭证处理的bug,运行npm update -g @google/clasp把clasp更新到最新版本,然后重新执行登录和创建脚本的操作。手动指定OAuth凭证(进阶方法):
如果上面的方法都没用,可以手动创建Google Cloud项目的OAuth客户端凭证,然后将凭证文件路径设置为环境变量CLASP_AUTH,让clasp直接读取这个凭证。不过这个步骤需要去Google Cloud控制台操作,先试试前面的简单方法哦。
内容的提问来源于stack exchange,提问作者Urvah Shabbir

