【问题标题】:Unable to run Clasp from npm or yarn script无法从 npm 或 yarn 脚本运行 Clasp
【发布时间】:2020-03-03 05:06:20
【问题描述】:

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

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

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

我已验证脚本在包含 .clasprc.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.

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

【问题讨论】:

  • 是本地安装还是全局安装 clasp?
  • 本地安装和全局安装都试过了,结果一样

标签: google-apps-script npm-scripts clasp


【解决方案1】:

您是否提供了正确的 scriptId?

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

例子

外壳

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

.clasp.json

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

【讨论】:

  • 我使用 webpack 将 .clasp.json 和 .clasprc.json 复制到构建目录。我可以从该目录中的命令行运行clasp push,而不是通过npm。为简化起见,我可以从项目的根目录重现该问题。来自 NPM:$ npm run push / > @ push /gs / > clasp push / > Did you provide the correct scriptId? 直接来自命令行:$ clasp push / └─ build/appsscript.json / └─ build/build.gs / Pushed 2 files.
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    刚刚解决了这里的问题:

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

    希望它会有所帮助。

    更多信息,请查看此链接:From a Github Repo's ReadMe

    【讨论】:

      猜你喜欢
      • 2018-04-21
      • 1970-01-01
      • 2019-01-17
      • 1970-01-01
      • 2020-06-13
      • 2018-11-28
      • 2017-09-09
      • 2021-09-07
      • 1970-01-01
      相关资源
      最近更新 更多