Итак, у меня есть проект с несколькими модулями, а именно:
- облачные функции
- ionic-app
- shared
shared
желательно, чтобы быть кодом, который используется совместно с cloud-functions
и ionic-app
.
Общий код отлично работает с ионным проектом (попытался запустить ionic serve
), но я не могуузнайте, что нужно сделать, чтобы он работал в функциях Firebase.
В Ionic я включил общий проект в качестве зависимости следующим образом:
"dependencies": {
// ...
"shared": "file:../shared"
},
В проекте Firebase я сделал именноТо же самое.
То, что я пробовал:
Я пробовал это с несколькими параметрами module
в tsconfig проекта cloud-functions
(commonjs
, esnext
, es2015
, amd
), но у каждого есть свой сбой.
С commonjs
(настройка по умолчанию) мне удается получить самый дальний. Ошибка, которую я получаю при развертывании, выглядит так:
Function failed on loading user code. Error message: 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 'shared'
at Function.Module._resolveFilename (module.js:548:15)
at Function.Module._load (module.js:475:25)
at Module.require (module.js:597:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/srv/lib/index.js:6:16)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
tsconfig.json
выглядит следующим образом:
// cloud-functions:
{
"compilerOptions": {
"baseUrl": "./",
"module": "commonjs",
"moduleResolution": "node",
"noImplicitReturns": true,
"noImplicitAny": false,
"noUnusedLocals": false,
"rootDir": "src",
"outDir": "lib",
"sourceMap": true,
"strict": true,
"importHelpers": true
}
}
// shared:
{
"compilerOptions": {
"module": "commonjs",
"moduleResolution": "node",
"rootDir": ".",
"sourceRoot": "src",
"outDir": "dist",
"sourceMap": true,
"declaration": true,
"target": "es2015"
}
}
Есть ли у вас какие-либо подсказки, как сделать локальный модультакже работает в firebase deploy
?
PS: я уже переустанавливал свои зависимости