Я на Windows-машине с vscode и запускаю команды из терминала bash внутри него. Однако я обнаружил, что firebase deploy
cli более стабилен на моей машине, если вызывается из cmd или powershell. Иногда зависает с терминалом vscode.bash или gitbash.
У меня есть облачные функции в машинописном тексте, а firebase deploy --only functions
запускает сценарий предустановки, например, npm run build
Я изменил свой скрипт сборки npm на "build": "tsc && npm run copyKeys",
, чтобы он всегда гарантировал копирование изменений ключей перед развертыванием. Эти ключи являются ключами учетной записи службы, которые используются во время развертывания.
Сценарий copyKeys - "copyKeys": "cp -rf ./src/environments/service.acct.keys/ ./lib/environments/",
, он прекрасно работает в bash.
Но мне нужен второй скрипт xcopyKeys4Win для использования powershell, который становится "xcopyKeys4Win": "XCOPY .\\src\\environments\\service.acct.keys .\\lib\\environments\\service.acct.keys /s /e /y /i"
, который прекрасно работает с PS.
Теперь моя проблема заключается в том, что когда я вызываю npm run deploy
, это вызывает firebase deploy --only functions
, который запускает сценарии предустановки firebase, которые вызывают npm run build
, и этот сценарий сборки жестко задан либо ... npm run copyKeys
, либо ... npm run xcopyKeys4Win
.
Мне нужно как-то условно вызвать 'npm run deploy' в зависимости от того, нужен ли bash cp, например. в mac / linux / vscode.bash / gitbash или xcopy при использовании cmd или PS.
например. или что-то похожее на настройку цели firebase хостинга или условие в скрипте сборки npm или что-то еще, у кого-нибудь есть идеи?