【问题标题】:Node v11 throws with spread operator节点 v11 使用扩展运算符抛出
【发布时间】:2019-06-17 15:16:34
【问题描述】:

我正在尝试构建一个电子应用程序,我正在使用electron-unhandled 在其中,但是在运行我的应用程序时会抛出

App threw an error during load C:\CLC\VIDA\Web\Comun\ypalma\todoapp\node_modules\electron-unhandled\index.js:74
                ...options,
                ^^^ SyntaxError: Unexpected token ...
    at Object.exports.runInThisContext (vm.js:76:16)
    at Module._compile (module.js:528:28)
    at Object.Module._extensions..js (module.js:565:10)
    at Module.load (module.js:473:32)
    at tryModuleLoad (module.js:432:12)
    at Function.Module._load (module.js:424:3)
    at Module.require (module.js:483:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (C:\CLC\VIDA\Web\Comun\ypalma\todoapp\index.js:3:19)
    at Module._compile (module.js:556:32)

引用的行有这个代码

options = {
    ...options,
    ...inputOptions
};

现在,奇怪的是我正在使用支持扩展运算符的节点 v11.5.0,所以我坚持这一点。所以,问题是,我怎样才能在不编译到 es5 的情况下完成这项工作?我的意思是,节点应该处理这种语法对吗?

如果有帮助,我的电子版本是 v5.0.1,我正在使用 Windows 10。

【问题讨论】:

  • Node v11(甚至v11.0.0)支持...的所有含义。所以如果你真的在使用 Node v11 并且它给你一个指向 ... 的语法错误,那么 ... 就是一个语法错误。不过,听起来您可能不会使用 Node v11。查看您的站外链接的第 74 行(问题不应依赖于站外链接),这是有效的财产传播(ES2018+)。
  • @T.J.Crowder 我也是这么想的,但是在那个 github 页面上的源代码中,我觉得还可以。同样有趣的是,这是该模块中的第一个扩展语法。
  • @Pointy - 是的,我刚刚编辑了那条评论。如果他们在该代码中遇到该错误,则说明他们没有使用 Node v11。
  • 我使用的是节点 11,我没有版本管理器,所以这是我唯一安装的节点版本。我知道从 v8.x.x 开始支持扩展运算符,这就是为什么我认为它很奇怪
  • @T.J.Crowder 在运行时检查我的进程版本号后,我得到以下 v8 5.3.332.47;节点 6.5.0;电子 1.4.13。因此,由于某种原因,它在运行时运行的版本与我安装的完全不同。所以不知道发生了什么。

标签: javascript node.js electron


【解决方案1】:

所以,在@T.J.Crowder 建议之后,我发现我的电子应用程序正在运行不同版本的节点和电子。安装的电子版本是^5.0.1,但问题是我也安装了electron-prebuilt,它有节点版本6.0.5和电子版本1.4.13。 所以这个模块覆盖了我的节点和电子版本。只需将其卸载并重新安装电子就可以了。

【讨论】:

    猜你喜欢
    • 2016-08-08
    • 1970-01-01
    • 2020-06-24
    • 1970-01-01
    • 1970-01-01
    • 2016-06-12
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多