无法 运行 来自 npm 或 yarn 脚本的 Clasp
Unable to run Clasp from npm or yarn script
我有一个 Google Apps 脚本项目,我正在尝试从 npm 或 yarn 脚本 运行 clasp push
。我可以从命令行 运行 clasp push
,但是当用作脚本时相同的命令失败:
"scripts": {
"push": "clasp push"
}
当 运行 为 npm run push
或 yarn 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.
对于上下文,我正在尝试做与此博客类似的事情 post:https://labs.clio.com/a-modern-gmail-add-on-build-process-3dd7aad111f5
您提供的 scriptId 是否正确?
- 复制
.clasp.json
建立在运行 clasp. 之前
- 将正确的 ID 添加到
.clasp.json
示例
shell
$> cd build && cp ./../.clasp.json ./ && ls -a && clasp push
.clasp.json
{
"scriptId": "17qJJk9kvCm2abutL1MUNzfSUd9aeieJAGRdKF_4QG4-EkxQC5C6jHyIP",
"rootDir": "build"
}
我能够诊断出问题所在。我发现我有一个全局登录名 (~/.clasprc.json),它具有与本地 .clasprc.json 不同的访问令牌。当从命令行 运行 clasp push
时,它使用我项目根目录中的 .clasprc.json 文件。但是,当它通过 npm 运行时,它使用的是全局登录。
我 运行 clasp logout
并验证了项目根目录中的 .clasprc.json 文件和我的主文件夹都已删除。再次登录后,我能够使用 npm 脚本成功推送
刚刚解决了这里的问题:
- 删除全局位置中的 ~/.clasprc.json 文件。
- 运行
clasp login
宗教(您的 Google 帐户)。
- 运行
clasp setup
从命令行创建一个新的电子表格和脚本项目。
- 然后就可以部署了...
希望对您有所帮助。
有关更多信息,请查看此 link:From a Github Repo's ReadMe
我有一个 Google Apps 脚本项目,我正在尝试从 npm 或 yarn 脚本 运行 clasp push
。我可以从命令行 运行 clasp push
,但是当用作脚本时相同的命令失败:
"scripts": {
"push": "clasp push"
}
当 运行 为 npm run push
或 yarn 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.
对于上下文,我正在尝试做与此博客类似的事情 post:https://labs.clio.com/a-modern-gmail-add-on-build-process-3dd7aad111f5
您提供的 scriptId 是否正确?
- 复制
.clasp.json
建立在运行 clasp. 之前
- 将正确的 ID 添加到
.clasp.json
示例
shell
$> cd build && cp ./../.clasp.json ./ && ls -a && clasp push
.clasp.json
{
"scriptId": "17qJJk9kvCm2abutL1MUNzfSUd9aeieJAGRdKF_4QG4-EkxQC5C6jHyIP",
"rootDir": "build"
}
我能够诊断出问题所在。我发现我有一个全局登录名 (~/.clasprc.json),它具有与本地 .clasprc.json 不同的访问令牌。当从命令行 运行 clasp push
时,它使用我项目根目录中的 .clasprc.json 文件。但是,当它通过 npm 运行时,它使用的是全局登录。
我 运行 clasp logout
并验证了项目根目录中的 .clasprc.json 文件和我的主文件夹都已删除。再次登录后,我能够使用 npm 脚本成功推送
刚刚解决了这里的问题:
- 删除全局位置中的 ~/.clasprc.json 文件。
- 运行
clasp login
宗教(您的 Google 帐户)。 - 运行
clasp setup
从命令行创建一个新的电子表格和脚本项目。 - 然后就可以部署了...
希望对您有所帮助。
有关更多信息,请查看此 link:From a Github Repo's ReadMe