【问题标题】:Firebase firestore function deploy failed due to unexpected token "." optional chaining由于意外令牌“。”,Firebase Firestore 功能部署失败可选链
【发布时间】:2022-01-01 05:42:22
【问题描述】:

我正在尝试使用包含可选链接的代码部署 node.js 触发器和函数。我之前部署了这段代码没有错误,但现在遇到了这个错误:

return this.roles?.includes(role.toString()) ? true : false; 
                  ^ 

SyntaxError: Unexpected token '.'
    at wrapSafe (internal/modules/cjs/loader.js:915:16)
    at Module._compile (internal/modules/cjs/loader.js:963:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
    at Module.load (internal/modules/cjs/loader.js:863:32)
    at Function.Module._load (internal/modules/cjs/loader.js:708:14)
    at Module.require (internal/modules/cjs/loader.js:887:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at Object.<anonymous> (/workspace/diwimaModelWeb/lib/network/index.js:13:14)
    at Module._compile (internal/modules/cjs/loader.js:999:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10) 

我使用 typescript 并且在 tsconfig.ts 中配置的构建目标是“es2020”。我可以通过代码并用 null cheking 替换所有可选链接,但我宁愿不这样做,因为我之前部署它没有问题。

【问题讨论】:

    标签: node.js google-cloud-functions


    【解决方案1】:

    我遇到了同样的问题,确实是节点版本不匹配。 (虽然不是 npm,但这没关系)。

    解决步骤:

    1. 检查您的本地节点版本:nvm --version (如果您从他们的网站手动安装,我建议您现在开始使用use nvm :)

    2. 确保在您的package.json 中设置相同, 例如"engines": {"node": "14"},

    3. 根据需要在 tsconfig.json 中设置您的 ES 版本。 例如"target": "ES2020", 它应该与您的节点版本兼容。 ES versions' feature highlights 列表和node versions supported by firebase here 列表。

    (可选)如果您仍有问题:

    1. 确保到目前为止提到的所有内容都在您的 firebase 应用的 functions 文件夹中(例如,您没有在根文件夹中意外安装依赖项)。

    2. 如果需要,检查并更新 firebase-tools 和 firebase 软件包。例如npm install --save firebase-functions

    3. 删除package-lock.json,然后再次构建+部署(npm run lint &amp;&amp; tscfirebase deploy --only functions)。有可能您的一些依赖项安装搞砸了,例如你没有 --save 它们(至少我在尝试解决上一步中的初始问题时这样做了)。

    【讨论】:

      【解决方案2】:

      对于遇到此问题的任何人。我在自己写这个问题的过程中修复了它,我注意到我使用不同的节点和 npm 版本来构建和上传,nvm 就像那样棘手:D。我还在 tsconfig 中选择了“es2017”。不是 100% 确定是什么修复了它。

      【讨论】:

        猜你喜欢
        • 2019-03-29
        • 2021-05-14
        • 1970-01-01
        • 2021-12-29
        • 2021-01-01
        • 1970-01-01
        • 2021-02-26
        • 2020-11-13
        • 2020-05-23
        相关资源
        最近更新 更多