无法从npm或yarn脚本运行Clasp



我有一个谷歌应用程序脚本项目,我正在尝试从npm或yarn脚本运行clasp push。我可以从命令行运行clasp push,但当用作脚本时,相同的命令会失败:

"scripts": {
"push": "clasp push"
}

当以npm run pushyarn push运行时,脚本将失败,并输出> Did you provide the correct scriptId?。如果我直接在命令行上运行clasp push,它会成功地将我的项目文件推送到Google Apps脚本中。

我已经验证了脚本是在包含.clusrc.json和appscript.json的同一目录中执行的


> @ push /gs
> cd build && ls -a && clasp push
.               ..              .clasp.json     .clasprc.json   appsscript.json build.gs
> Did you provide the correct scriptId?
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ push: `cd build && ls -a && clasp push`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the @ push script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

就上下文而言,我正试图做一些类似于这篇博客文章的事情:https://labs.clio.com/a-modern-gmail-add-on-build-process-3dd7aad111f5

您提供了正确的scriptId吗?

  • 在运行clamp之前复制.clasp.json以构建
  • 将正确的id添加到.clasp.json

示例

外壳

$>  cd build && cp ./../.clasp.json ./ && ls -a && clasp push

.clasp.json

{
"scriptId": "17qJJk9kvCm2abutL1MUNzfSUd9aeieJAGRdKF_4QG4-EkxQC5C6jHyIP",
"rootDir": "build"
}

我能够诊断出问题。我发现我有一个全局登录名(~/.clusrc.json(,它的访问令牌与本地.clusrc.json不同。当从命令行运行clasp push时,它使用我项目根目录中的.clusrc.jar文件。然而,当它通过npm运行时,它使用的是全局登录
我运行了clasp logout,并验证了项目根目录中的.clusrc.json文件和主文件夹都已删除。再次登录后,我能够使用npm脚本成功推送

刚刚解决了这里的问题:

  1. 删除全局位置中的~/.clusrc.json文件
  2. 运行clasp login到宗教(你的谷歌帐户(
  3. 运行clasp setup从命令行创建一个新的电子表格和脚本项目
  4. 然后你可以部署它

希望它能有所帮助。

有关更多信息,请查看此链接:来自Github Repo的ReadMe

最新更新