【问题标题】:Why is the Node version on Firebase Cloud Functions so old?为什么 Firebase Cloud Functions 上的 Node 版本这么旧?
【发布时间】:2018-09-02 05:05:07
【问题描述】:

根据https://cloud.google.com/functions/docs/writing/,Firebase Cloud Functions 使用 Node v6.11.5

是否有任何关于为什么选择这样一个旧版本的见解,特别是考虑到它让我无法在像 ECMA6 这样的 JS 语言中使用更新的语法?

【问题讨论】:

    标签: firebase google-cloud-functions


    【解决方案1】:

    编辑:从 Cloud Next 2018 开始,Cloud Functions 已退出测试版。现在支持 node 8,但目前处于测试阶段。

    有很多事情要记住。

    Cloud Functions 将仅使用具有 LTS(长期支持)的节点版本。只有偶数版本的节点接收 LTS。

    Cloud Functions 处于测试阶段,工程团队的优先事项比提供新版本的节点更重要。准备好生产是当务之急,这不一定涉及拥有最新版本的节点。

    简单地加入新的主要版本是不可行的,因为这可能会破坏现有客户端。可能必须是每个项目都可以选择他们想要使用的节点版本,这是一个重大的变化。

    您可以使用任何可以转换为 ES6 的语言。如果您愿意,这包括 TypeScript 甚至 Kotlin。 The Firebase CLI supports TypeScript directly,已经有几个月了。 TypeScript 实际上是 Firebase 团队推荐的开发语言。

    如果您想掌握最新的 Cloud Functions 开发语言,我强烈建议您不要依赖 node.js 的版本。相反,选择可以转译为 ES6 的工具。

    【讨论】:

    • 虽然我接受你的回答,但有更新的 LTS 版本 (nodejs.org/en/blog/release/v8.9.0),它们是在不久之后添加的......我知道转译,但我不确定是否有好处总是匹配的.. 例如 ES6 有“import”,它被转换为“require”,但前者只是后者的包装器吗?如果不是,我们不会错过新语言的一些优势吗?跨度>
    • 您并没有真正错过新语言的优势。除非您有数据表明并非如此。
    • @Blue 您在节点 6 上使用 TypeScript 获得异步/等待。
    • 例如,较新版本的 node.js 将在 V8 上进行性能改进。
    • 在几乎没有 TS 文档并且 TS 和 JS 的 API 不同的情况下,你会说 Firebase 推荐 TS,这真的很奇怪。
    【解决方案2】:

    Firebase Cloud Functions 现在支持 Node 8。有关如何升级的说明:Cloud Functions: Migrating to Node 8

    更新:Official announcement and instructions

    【讨论】:

      【解决方案3】:

      节点 6 + 8 支持已弃用。最新的firebase-tools现在在functions/package.json中添加了以下内容,如果没有可以添加:

      "engines": { "node": "12" }
      

      请注意,这是撰写本文时的稳定版本,但 14 已经处于测试阶段并且可以使用:https://firebase.google.com/docs/functions/manage-functions

      【讨论】:

        【解决方案4】:

        无论何时观看

        Firebase 将使用 LTS 标记版本的时间

        【讨论】:

          猜你喜欢
          • 2017-08-08
          • 2019-05-06
          • 2017-09-24
          • 2020-03-25
          • 2021-05-04
          • 1970-01-01
          • 2019-03-14
          • 2019-09-29
          • 1970-01-01
          相关资源
          最近更新 更多