Невозможно запустить Clasp из сценария npm или пряжи - PullRequest
1 голос
/ 06 ноября 2019

У меня есть проект Google Apps Script, и я пытаюсь запустить clasp push из сценария npm или пряжи. Я могу запустить 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.

Для контекста я пытаюсь сделать что-то похожее на это сообщение в блоге: https://labs.clio.com/a-modern-gmail-add-on-build-process-3dd7aad111f5

Ответы [ 2 ]

2 голосов
/ 06 ноября 2019

Вы указали правильный scriptId?

  • скопируйте .clasp.json для сборки перед запуском clasp.
  • добавьте правильный идентификатор к .clasp.json

Пример

оболочка

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

.clasp.json

{
  "scriptId": "17qJJk9kvCm2abutL1MUNzfSUd9aeieJAGRdKF_4QG4-EkxQC5C6jHyIP",
  "rootDir": "build"
}
0 голосов
/ 07 ноября 2019

Мне удалось диагностировать проблему. Я обнаружил, что у меня глобальный логин (~ / .clasprc.json), у которого был токен доступа, отличный от локального .clasprc.json. При запуске clasp push из командной строки он использует файл .clasprc.json в корне моего проекта. Однако когда он запускался через npm, он использовал глобальный логин.
Я запустил clasp logout и проверил файл .clasprc.json в корне моего проекта, и моя домашняя папка была удалена. После повторного входа в систему я смог успешно нажать, используя скрипт npm

...