所以我有一个包含多个模块的项目,即:
shared
是cloud-functions
和ionic-app
之间共享的代码。
共享代码可与ionic项目(尝试运行ionic serve
)一起正常工作,但我似乎无法找出如何使其在Firebase函数中正常工作。
在Ionic中,我将共享项目包含为依赖项,如下所示:
"dependencies": {
// ...
"shared": "file:../shared"
},
在Firebase项目中,我做的完全一样。
我尝试过的事情:
我已经在module
项目(cloud-functions
,commonjs
,esnext
,es2015
的tsconfig中使用多个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:我已经重新安装了依赖项