Обслуживание функций Firebase не перегружается в Windows

Обслуживание функций Firebase локально с помощью команды firebase serve должно включать горячую перезагрузку, но, похоже, это не работает в Windows, даже с установленным сторожем. Есть ли лучшее решение помимо запуска npm build после каждого изменения кода?

5 ответов

Я смешал 2 ответа:

"scripts": {
   "serve": "npm run build -- --watch | firebase emulators:start --only functions",
   ...
}`

Я делаю это следующим образом (дополнительно к ответу Галки):

firebase serve --only functions

а на другой вкладке терминала я просто использую

npm run build -- --watch 

из каталога функций. Таким образом, у вас будет какой-то более быстрый цикл разработки.

Чтобы включить горячую перезагрузку функций Firebase с машинописным текстом, вы можете добавить эти 2 команды в свой файл package.json.

      "build:watch": "tsc -w"
"serve:watch": "npm run build:watch | firebase emulators:start --only functions",

Если вы хотите также использовать функцию псевдонимов путей , вам потребуется установить 2 дополнительных пакета разработки , чтобы она работала.

      npm install --save-dev tsc-alias concurrently

tsc-alias предназначен для замены путей псевдонимов относительными путями после машинописной компиляции компилятора tsc, поскольку компилятор сам по себе не может разрешить пути псевдонимов

concurrently для одновременного запуска нескольких команд

После установки 2 пакетов вам нужно будет добавить эти 2 скрипта в файл package.json.

      "build:watch": "concurrently --kill-others \"tsc -w\" \"tsc-alias -w\"",
"serve:watch": "npm run build:watch | firebase emulators:start --only functions",

Тогда начать разработку с горячей перезагрузкой будет так же просто, как запустить только в терминале.

      npm run serve:watch

Обратите внимание: я использую эти версии пакетов

      "firebase-admin": "^10.0.1",
"firebase-functions": "^3.14.1",
"tsc-alias": "^1.5.0",
"typescript": "^4.5.5",
"concurrently": "^7.0.0",

Старые или новые версии могут вызвать некоторые проблемы с компиляцией кода.

Попробуйте выполнить сценарий npm

"serve": "./node_modules/.bin/tsc --watch | firebase serve --only functions"

Работает на текущий момент (firebase-tools 8.0.0).

И то и другое

firebase serve --only functions

а также

 firebase emulators:start --only functions

работать, но еще нужно бежать npm run build вручную каждый раз.

Другие вопросы по тегам