【问题标题】:can't use optional chaining (?)不能使用可选链接 (?)
【发布时间】:2021-09-28 14:03:04
【问题描述】:

我尝试在我的 nodeJS 项目中使用可选链接。

我使用版本 15.8(或任何 >12,我正在使用 nvm)。

我的项目使用标志 esm 运行

$ run.env -p ../../.env nodemon -r esm --watch ../../.env --watch ./src/ ./src/index.js
[nodemon] 2.0.12
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): ../../.env src/**/*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node -r esm ./src/index.js`
/home/dre/Projects/my/packages/backend/src/routes/account/login.js:72
    let user = await Account.findOne({ email: payload?.email });
                                                      ^

SyntaxError: Invalid or unexpected token
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1137:10)
[nodemon] app crashed - waiting for file changes before starting...

我的 eslint 不再对这种语法大喊大叫了,但没有办法让 node 理解它。

任何想法都会对我有很大帮助!

【问题讨论】:

  • 你运行的是什么节点版本?这是not supported below version 14...
  • 它在 15.8 中应该可以正常工作,你确定这是 nodemon 使用的版本吗?尝试记录process.version
  • 您确定您的系统上没有任何旧版本的节点吗?你确定 nodemon 使用的是 nvm 的正确版本吗?
  • @AlexanderNied, @CherryDt, @derpirscher 当我登录 process.versions 时,我的版本是 15.8@ 我得到了 { node: '15.8.0', v8: '8.6.395.17-node.23', uv: '1.40.0', zlib: '1.2.11', brotli: '1.0.9', ares: '1.17.1', modules: '88', nghttp2: '1.42.0', napi: '7', llhttp: '2.1.3', openssl: '1.1.1i', cldr: '38.1', icu: '68.2', tz: '2020d', unicode: '13.0' }

标签: node.js ecmascript-6


【解决方案1】:

您必须启用此功能,因为应用新的 ECMAScript 6 功能的 --harmony 标志并未广泛支持它。

根据node.green,从节点 14 开始将支持可选链接,但仍需要 --harmony 标志。

【讨论】:

  • 我尝试使用标志运行它,但出现相同的错误run.env -p ../../.env nodemon -r esm --harmony --watch ../../.env --watch ./src/ ./src/index.js 我也尝试使用 node 代替 nodemon 但没有更好的结果
  • @dredtrake 我无法重现该问题。您可以创建一个新目录并在其中运行npm init,然后尝试使用带和不带和谐标签的可选链接吗?
  • 我认为是由于我的项目的架构,我重新设置它并没有问题了:)
【解决方案2】:

更新到 v16.10 删除了 esm 标志,将 "type": "module" 放入我的 package.json 中

我现在需要稍微调整一下我的应用程序以使其正常工作并修复一些新错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-03
    • 2023-04-02
    • 1970-01-01
    • 2020-07-19
    • 1970-01-01
    • 2023-03-24
    • 2011-01-07
    相关资源
    最近更新 更多