部署 Nuxt 应用程序时如何在 Firebase Functions 中启用 Vuex

Posted

技术标签:

【中文标题】部署 Nuxt 应用程序时如何在 Firebase Functions 中启用 Vuex【英文标题】:How to enable Vuex in Firebase Functions when deploying Nuxt app 【发布时间】:2021-07-28 06:23:03 【问题描述】:

我正在尝试将 Nuxt s-s-r 应用程序部署到 Firebase Functions 以从客户端和服务器端提供服务,一切都按预期工作,但是在尝试实现 @nuxtjs/auth 时它在本地工作,但在部署到 Firebase 时却不行,正在调查Firebase Functions 控制台显示:

FATAL Enable vuex store by creating store/index.js.

在我的store 文件夹中,我有几个用于 vuex 空间的文件,我在那里创建了 index.js 文件并尝试了有内容和没有内容,但结果是一样的。

我在部署函数之前所做的是将生成的 .nuxt 文件夹复制到函数文件夹中:

npm run build && rm -rf functions/nuxt && cp -r .nuxt/ functions/nuxt/ && cp nuxt.config.js functions/

之后是functions文件夹结构:

这是函数内部nuxt文件夹的结构:

正如您在 nuxt 文件夹中看到的那样,没有 store 文件夹,只有一个 store.js 文件,阅读它我发现它说:

store = normalizeRoot(require('../store/index.js'), 'store/index.js')

但是store文件夹是后面两个文件夹,在根文件夹里,所以我改成了:

store = normalizeRoot(require('../../store/index.js'), 'store/index.js')

并尝试手动部署功能,但结果是相同的错误消息。

我不知道如何在 Firebase 功能的服务器端启用 Vuex,我认为通过更改 store.js 文件可以解决它,但我需要在每次部署中更改它。解决它的正确方法是什么?谢谢。

【问题讨论】:

【参考方案1】:

当我通过将我的 store/ 文件夹复制到 functions/ 文件夹来解决它时,现在 Firebase Functions 控制台什么也没说,它看起来像工作,但我不确定这是否是正确的方法解决它。

我已将我的预部署命令更改为如下所示:

rm -rf functions/nuxt && cp -r .nuxt/ functions/nuxt/ && cp nuxt.config.js functions/ && cp -r store/ functions/

【讨论】:

以上是关于部署 Nuxt 应用程序时如何在 Firebase Functions 中启用 Vuex的主要内容,如果未能解决你的问题,请参考以下文章

如何通过云功能将 Nuxt s-s-r 应用部署到 Firebase?

使用 Github 操作将 .env 机密添加到在 Firebase 托管上部署的 Nuxt 应用程序

Nuxt ^2.0.0 和 Firebase 托管

为Nuxt.js部署云功能错误

Nuxt s-s-r 与 Firebase 集成

如何使用 Nuxt.js 实现 Firebase 云消息传递 (FCM)