Google apps script 无法从npm或脚本运行Clasp

Google apps script 无法从npm或脚本运行Clasp,google-apps-script,npm-scripts,clasp,Google Apps Script,Npm Scripts,Clasp,我有一个Google应用程序脚本项目,我正在尝试从npm或Thread脚本运行clasp push。我可以从命令行运行clasp push,但当用作脚本时,相同的命令会失败: "scripts": { "push": "clasp push" } 当以npm运行推送或纱线推送的方式运行时,脚本输出失败>是否提供了正确的脚本ID?。如果我直接在命令行上运行clasp push,它会成功地将我的项目文件推送到Google Apps脚本 我已经验证了脚本是否在包含.classrc.json和ap

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

"scripts": {
  "push": "clasp push"
}
当以
npm运行推送
纱线推送
的方式运行时,脚本输出失败
>是否提供了正确的脚本ID?
。如果我直接在命令行上运行
clasp push
,它会成功地将我的项目文件推送到Google Apps脚本

我已经验证了脚本是否在包含.classrc.json和appsscript.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.

在上下文中,我尝试做一些类似于这篇博文的事情:

您提供了正确的scriptId吗

  • 在运行clasp之前,复制
    .clasp.json
    以生成
  • 将正确的id添加到
    .clasp.json
范例

壳牌公司

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

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

我能够诊断出这个问题。我发现我有一个全局登录名(~/.clasrc.json),它的访问令牌与本地的.clasrc.json不同。从命令行运行
clasp push
时,它使用我的项目根目录中的.claprc.json文件。但是,当它通过npm运行时,它使用的是全局登录。

我运行了
clasp注销
,并验证了我的项目根目录中的.clasrc.json文件和我的主文件夹都已删除。再次登录后,我能够使用npm脚本成功推送clasp是本地安装还是全局安装?我尝试了本地和全局安装,bothI的相同结果是使用webpack将.clasp.json和.clasp.json复制到构建目录。我能够从该目录中的命令行运行
clasp push
,只是不能通过npm。为了简化,我可以从项目的根目录复制问题。来自NPM:
$NPM run push/>@push/gs/>clasp push/>您提供了正确的脚本ID吗直接从命令行:
$clasp push/└─ build/appsscript.json/└─ build/build.gs/push 2个文件。