Firebase Hosting:函数不适用于ServerMiddleware(Vue/Nuxt)



我正在构建一个项目,该项目使用ServerMiddleware仅在客户端呈现某些页面(如果没有ServerMiddleware.刷新页面等问题…(

问题:不幸的是,每次我尝试通过"Firebase deploy"部署到Firebase Function时,我都会收到一个错误:

错误:找不到模块'~/serverMiddleware/selectiveSRSR.js'

如果我排除以下行,函数构建正常。据我所见,Nuxt/Vue没有将~/serverMiddleware/作为其构建的一部分。

以下是nuxt.config.js中引用我的服务器中间件的代码:

serverMiddleware: ['~/serverMiddleware/selectiveSSR.js']

在nuxt.config.js中的Build中向文件本身添加目录或路径(如上所述(也没有帮助。也许我做错了?

在本地测试(而不是构建(时,一切都能完美工作。

关于如何解决这个问题,有什么想法吗?

谢谢!

好的,所以对于其他点击它的人来说,以下是我绕过它的方法。

首先,我不知道这是Firebase Hosting还是Nuxt的错(我猜是Nuxt,但我需要纠正(,但下面是该怎么做…

1( 从nuxt.config.js中删除对ServerMiddleware的任何引用

2( 将以下内容添加到nuxt.config.js

modules: [
    '~/local-modules/your-module-name'
  ],

3( 在项目根中创建目录~/本地模块/您的模块名称

4( 在新目录中,创建一个package.json:

{
    "name": "your-module-name",
    "version": "1.0.0"
  }

和index.js-关键的东西,this.addServerMiddleware允许您调用中间件服务器端

module.exports = function(moduleOptions) {
  this.addServerMiddleware('~/serverMiddleware/')
}

5( 创建目录~/serverMiddleware

6( 将您的中间件函数添加到新目录中的index.js:

export default function(req, res, next) {
 // YOUR CODE
  next() // Always end with next()!
}

7( 使用"依赖项"下的新本地模块更新package.json

    "your-module-name": "file:./local-modules/your-module-name"

别忘了你也需要在函数目录中这样做,否则Firebase会抱怨找不到你的新模块

相关内容

  • 没有找到相关文章

最新更新