【问题标题】:Unexpected token error with jsDOM and MeteorjsDOM 和 Meteor 出现意外的令牌错误
【发布时间】:2017-11-18 12:09:56
【问题描述】:

我正在尝试通过 jsDom 在服务器上呈现图表。 我有一个使用 node.js 和 Express 的工作版本。 每当我添加以下代码时,目前都在 Meteor 项目中

var jsdom = require('jsdom');

我收到以下错误:

W20170615-20:30:17.440(2)? (STDERR) packages\modules.js:397
W20170615-20:30:17.456(2)? (STDERR) const { URL } = require("whatwg-url");
W20170615-20:30:17.460(2)? (STDERR)       ^
W20170615-20:30:17.461(2)? (STDERR)
W20170615-20:30:17.463(2)? (STDERR) SyntaxError: Unexpected token {
W20170615-20:30:17.465(2)? (STDERR)     at Object.exports.runInThisContext (vm.j
s:53:16)
W20170615-20:30:17.470(2)? (STDERR)     at C:\x\x\x\x\x
pp\.meteor\local\build\programs\server\boot.js:331:30
W20170615-20:30:17.472(2)? (STDERR)     at Array.forEach (native)
W20170615-20:30:17.473(2)? (STDERR)     at Function._.each._.forEach (C:\x\K
x\x\Local\.meteor\packages\meteor-tool\1.5.0\mt-os.windows.x86_32\dev
_bundle\server-lib\node_modules\underscore\underscore.js:79:11)
W20170615-20:30:17.475(2)? (STDERR)     at C:\x\x\x\x\x
pp\.meteor\local\build\programs\server\boot.js:158:5
W20170615-20:30:17.476(2)? (STDERR)     at C:\x\x\x\x\x
pp\.meteor\local\build\programs\server\boot.js:387:5
W20170615-20:30:17.478(2)? (STDERR)     at Function.run (C:\x\x\x
p\x\x\.meteor\local\build\programs\server\profile.js:510:12)
W20170615-20:30:17.479(2)? (STDERR)     at C:\x\x\x\x\x
pp\.meteor\local\build\programs\server\boot.js:386:11
=> Exited with code: 1

版本 -nodejs:v7.8 - jsDom:11.0.0 - 流星:1.5

要复制问题,请执行以下操作:

  1. 运行 meteor create --full jsDomTest
  2. cd jsDomTest
  3. meteor npm install
  4. npm install jsdom --save
  5. 在根服务器文件夹中添加以下行var jsdom = require('jsdom');
  6. 跑流星

目前我不确定如何解决这个问题。 任何帮助将不胜感激。

【问题讨论】:

  • 您可以尝试发布一个简单的控制台应用程序来演示该问题吗?我无法复制。
  • @akaphenom 感谢您的回复。我添加到我原来的发布步骤进行复制。我只是自己运行了这些步骤,遇到了同样的问题。
  • 您是否执行了meteor npm install 来安装所有必需的模块?
  • @Khang 是的,上面的复制假设已经完成。
  • 我在上述步骤中没有看到该命令

标签: node.js meteor jsdom


【解决方案1】:

这是 JSDOM 的较新版本中未解决的错误。在我正在编写的 Express.js 应用程序中,我遇到了同样的问题。如果您更改为 9.0.0 版本(在 package.json 中)然后更新您的应用程序(npm update ...),或者如果您能够更新您的 Node.js 版本,那么问题就会消失,那么这也可以解决问题(我认为 Meteor.js 使用的是旧版本的 Node.js)。

至少,这适用于 Node.js。理论上它应该适用于基于 Node.js 的 Meteor.js,尽管我使用 Meteor.js 已经很长时间了,所以事情可能会继续。

【讨论】:

  • 我确实忘记了 :) 流星自己的节点版本位于 v4.8 并且 jsdom 确实在其文档中说它需要 v6 > 用于 jsdom v11.0。所以将 jsdom 设置为 v9 是解决方法。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-22
  • 2022-11-11
  • 2020-11-08
相关资源
最近更新 更多