gpt4 book ai didi

javascript - 具有 node.js firebase 功能的 vue-cli v3,firebase 托管(错误 : No npm package found in functions source directory)

转载 作者:行者123 更新时间:2023-11-30 20:15:01 26 4
gpt4 key购买 nike

我想在前端使用 Vue.js,在后端使用 Firebase 函数 (Express.js) + Firestore。

0 步:我在 Google Firebase 上创建了一个新项目,我创建了一个具有所有者权限的新服务帐户(稍后与 Admin SDK 一起使用)

第一步:我安装了 vue-cli v3 并创建了项目:

$ vue create my-project
$ npm run serve //localhost:8080 OK

第二步:

$npm install firebase firebase-admin firebase-functions --save

文件夹结构:

my-project
.firebaserc //created (edited) manually
babel.config.js
firebase.json //created (edited) manually
package.json
dist
node_modules
public
src
assets
components
firebase
functions
index.js //here are my functions
service-accounts
views

firebase.json:(从其他项目复制并手动编辑)

{
"functions:": {
"source": "src/firebase/functions"
},
"hosting": {
"public": "public",
"ignore": [...]
}
}

src/functions/index.js:

import functions from 'firebase-functions';
import admin from 'firebase-admin';

const serviceAccount = require('../service-accounts/owner-key.json');
admin.initializeApp({
credentials: admin.credencial.cert(serviceAccount),
databaseURL: 'my-project.firebaseio.com'
})
const db = admin.firestore();
...

package.json 文件中我添加了额外的脚本:

"deploy": "vue-cli-service build && firebase deploy --only hosting,functions"

但是当我运行“npm run deploy”命令时,我收到一个错误:

在函数源目录中找不到 npm 包。请在 src/firebase/functions 中运行“npm init”

我的下一个问题是:为什么它只需要在函数源目录中安装 firebase 函数包,我可以使用我安装在顶级 node_modules 文件夹中的 firebase-functions 吗?

最佳答案

我建议您将这两个项目分开,特别是不要将 Firebase Cloud Functions 目录放在 vue.js 项目文件夹中。

换句话说:

1/使用 vue.js CLI 将您的 vue.js 项目创建为“独立的”vue.js 前端项目

2/在完全不同的位置通过 Firebase CLI 像往常一样创建您的 Firebase 项目。

3/当你想部署你的 vue.js 前端应用程序时,构建你的 vue.js 应用程序并将 dist 文件夹的内容复制到 Firebase 项目的 public 文件夹中

4/使用 firebase deploy --only hosting,functions 部署 Firebase 项目(或 firebase deploy --only functionsfirebase deploy --only hosting ...)

您可以在步骤 3 中自动执行复制。

关于javascript - 具有 node.js firebase 功能的 vue-cli v3,firebase 托管(错误 : No npm package found in functions source directory),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52007712/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com