Ошибка развертывания функции Firebase в проекте машинописного текста с несколькими зависимостями машинописного текста, связанными через git + https - PullRequest
0 голосов
/ 01 октября 2018

Привет, у меня возникла проблема с развертыванием моего приложения для машинописного экспресса в firebase через firebase-tools, когда этот проект содержит другую зависимость от машинописного текста.Возможно, что-то не так с процессом сборки при запуске в функциях Google.Обратите внимание, что программа работает должным образом локально, это только проблема с развертыванием.

Вот репозиторий для MVE:

https://github.com/jk89/baseRepo

, который загружает две зависимости:

https://github.com/jk89/depRepo1

https://github.com/jk89/depRepo2

Я получаю следующую ошибку от firebase-tools 'firebase deploy':

jty@carrot:~/April2018/typescript-min-ver/baseRepo$ firebase deploy

=== Deploying to 'pricecalculator-e88d6'...

i  deploying functions
Running command: npm --prefix "$RESOURCE_DIR" run build

> base-repo@0.1.0 build /home/jty/April2018/typescript-min-ver/baseRepo
> npm run tslint && tsc --declaration


> base-repo@0.1.0 tslint /home/jty/April2018/typescript-min-ver/baseRepo
> tslint -c tslint.json -p tsconfig.json

✔  functions: Finished running predeploy script.
i  functions: ensuring necessary APIs are enabled...
✔  functions: all necessary APIs are enabled
i  functions: preparing . directory for uploading...
i  functions: packaged . (12.76 KB) for uploading
✔  functions: . folder uploaded successfully
i  functions: updating Node.js 8 function webApi(us-central1)...
⚠  functions[webApi(us-central1)]: Deployment error.
Function load error: Code in file ./lib/index.js can't be loaded.
Did you list all required modules in the package.json dependencies?
Detailed stack trace: Error: Cannot find module 'dep-repo-1'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/srv/lib/index.js:7:22)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)


Functions deploy had errors. To continue deploying other features (such as database), run:
    firebase deploy --except functions

Error: Functions did not deploy properly.

Having trouble? Try firebase deploy --help

Конечно, это распространенный вариант использования модульных модулей машинописного текста.Я не понимаю, почему это не работает?!

1 Ответ

0 голосов
/ 02 октября 2018

Когда Firebase пытается установить и собрать ваши функции, он смотрит на поле в dep-repo-1 / package.json "module": "./dist/index.js" и пытается следовать за ним.Поскольку файл не существует, он выдает Error: Cannot find module 'dep-repo-1'

файла не существует, поскольку в каждом из подмодулей каталог dist не публикуется на Github, а Firebase не выполняет автоматическое-строить свои пакеты npm.(dist/ включено в .gitignore)

Существует несколько вариантов сборки модулей:

  1. Лучшей практикой будетсоздайте второй «опубликованный» репозиторий (или хранилище файлов), в котором находятся только ваши артефакты (включая dist/ и игнорируйте lib/).Это похоже на настройку модуля, использующего npm publish.
  2. Просто включите каталог dist/ в свой репозиторий.Это менее чисто (поскольку вы включаете встроенные файлы в то, что должно быть репозиторием только для исходного кода)
  3. Создайте скрипт "install": "tsc" в package.json каждого модуля.Это запустится, когда вы установите npm.Обязательно добавьте машинописный текст в список зависимостей, поскольку в среде сборки Firebase его предварительно не установлено.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...