在 firebase 函数中配置部署目录
Configure the deployment directory in firebase functions
我有一个基于 typescript 的现有 nodejs 应用程序。
现有的nodejs应用结构如下
ROOT
- dist
- src
- *.ts
- test
- package.json
- gulpfile.json
- .env
所有编译都在 dist 下,应用程序运行正常。
我已经在许多任务中使用了 firebase 函数,并且也想对这个应用程序使用相同的函数。
现在我想直接在这个项目中集成 firebase 功能。修改后的结构是
ROOT
- dist
- src
- *.ts
- workers <firebase functions>
- index.ts
- test
- package.json
- gulpfile.json
- .env
- firebase.json
- .firebaserc
为确保 firebase 查看正确的文件夹,我已将 firebase.json 中的文件夹配置为指向根目录
{
"functions": {
"source": "."
}
}
除此之外,我还对 package.json
进行了必要的更改
{
...
"main": "dist/workers/index.js",
"engines": {
"node": "10"
},
...
这些配置确保我能够运行云上的功能shell
firebase functions:shell --debug
问题在于部署函数。
firebase deploy --only functions --debug
firebase 部署正在部署我的整个目录,导致 400 错误。调试日志清楚地显示包大小超过 300 MB,基本上打包了所有不需要的文件。
如何确保 firebase 部署仅部署所需的文件夹。
Firebase CLI 将无条件部署您指定为“源”的所有内容,减去 node_modules,这些内容将由 Cloud Functions 在服务端使用 npm install
重建。无法从此位置添加或省略文件。
默认情况下,Firebase CLI 初始化的项目会创建一个名为“functions”的文件夹,并将其用作所有与函数相关的代码和配置的根目录,包括 package.json 以及所有源代码和转译代码。这通常是项目的组织方式。
鉴于此要求,您可能应该重新考虑向现有项目添加函数,并将函数代码保留在其自己的项目中。有一些方法可以在项目之间共享代码,如果这是您需要做的,那是另一个需要研究的主题。
我有一个基于 typescript 的现有 nodejs 应用程序。
现有的nodejs应用结构如下
ROOT
- dist
- src
- *.ts
- test
- package.json
- gulpfile.json
- .env
所有编译都在 dist 下,应用程序运行正常。
我已经在许多任务中使用了 firebase 函数,并且也想对这个应用程序使用相同的函数。
现在我想直接在这个项目中集成 firebase 功能。修改后的结构是
ROOT
- dist
- src
- *.ts
- workers <firebase functions>
- index.ts
- test
- package.json
- gulpfile.json
- .env
- firebase.json
- .firebaserc
为确保 firebase 查看正确的文件夹,我已将 firebase.json 中的文件夹配置为指向根目录
{
"functions": {
"source": "."
}
}
除此之外,我还对 package.json
进行了必要的更改{
...
"main": "dist/workers/index.js",
"engines": {
"node": "10"
},
...
这些配置确保我能够运行云上的功能shell
firebase functions:shell --debug
问题在于部署函数。
firebase deploy --only functions --debug
firebase 部署正在部署我的整个目录,导致 400 错误。调试日志清楚地显示包大小超过 300 MB,基本上打包了所有不需要的文件。
如何确保 firebase 部署仅部署所需的文件夹。
Firebase CLI 将无条件部署您指定为“源”的所有内容,减去 node_modules,这些内容将由 Cloud Functions 在服务端使用 npm install
重建。无法从此位置添加或省略文件。
默认情况下,Firebase CLI 初始化的项目会创建一个名为“functions”的文件夹,并将其用作所有与函数相关的代码和配置的根目录,包括 package.json 以及所有源代码和转译代码。这通常是项目的组织方式。
鉴于此要求,您可能应该重新考虑向现有项目添加函数,并将函数代码保留在其自己的项目中。有一些方法可以在项目之间共享代码,如果这是您需要做的,那是另一个需要研究的主题。