【问题标题】:Angular 8 Server Side Rendering not working with FirebaseAngular 8 服务器端渲染不适用于 Firebase
【发布时间】:2019-11-03 20:09:22
【问题描述】:

我正在使用 Angular Universal 设置一个 Angular 8 项目,以使我的项目对 SEO 更友好。我的实际阻止程序是当我想运行npm run server:ssr 时抛出与@firebase/app package 相关的错误。

我在 Windows 10 机器 Angular 8 和 Firebase ^6.2.0 上运行该项目

angular.json 文件:

          "builder": "@angular-devkit/build-angular:server",
          "options": {
            "outputPath": "dist/server",
            "main": "src/main.server.ts",
            "tsConfig": "src/tsconfig.server.json"
          },

这是我收到的消息:

@firebase/app:
      Warning: This is a browser-targeted Firebase bundle but it appears it is being
      run in a Node environment.  If running in a Node environment, make sure you
      are using the bundle specified by the "main" field in package.json.

      If you are using Webpack, you can specify "main" as the first item in
      "resolve.mainFields":
      https://webpack.js.org/configuration/resolve/#resolvemainfields

      If using Rollup, use the rollup-plugin-node-resolve plugin and specify "main"
      as the first item in "mainFields", e.g. ['main', 'module'].
      https://github.com/rollup/rollup-plugin-node-resolve


【问题讨论】:

    标签: node.js angular firebase angularfire server-side-rendering


    【解决方案1】:

    您使用的 firebase 捆绑包仅适用于浏览器/客户端。困扰您的代码位于服务器端。

    您需要导入(和设置)firebase-admin 才能在服务器端 (NodeJS) 上工作。

    如果您对客户端和服务器使用相同的代码,请确保使用以下标志分隔客户端代码:

    if( process.env.NODE_ENV === 'development') { 
        // client-side only code ... 
    }
    

    如果您需要更多帮助,请告诉我!

    【讨论】:

    • 嗨@Moshe我已经在我的server.ts文件上配置了firebase-admin。现在抛出不同的错误:``` ./node_modules/google-gax/build/src/operationsClient.js 中的错误 ```
    【解决方案2】:

    我通过安装这两个包来解决这个问题:

    npm i xmlhttprequest ws -s
    npm i bufferutil utf-8-validate -s
    
    

    并将其添加到我的 server.ts 文件的顶部:

    (global as any).WebSocket = require('ws');
    (global as any).XMLHttpRequest = require('xhr2');
    

    感谢您的帮助。

    【讨论】:

      猜你喜欢
      • 2020-01-24
      • 2019-08-05
      • 2021-12-22
      • 2021-01-14
      • 2018-03-21
      • 2019-09-07
      • 1970-01-01
      • 2020-10-22
      相关资源
      最近更新 更多