Обслуживание функций 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
вручную каждый раз.