jsDOM 和 Meteor 出现意外的令牌错误

Unexpected token error with jsDOM and Meteor

我正在尝试通过 jsDom 在服务器上呈现 chartsjs。 我有一个使用 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.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

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

要重现该问题,请执行以下操作:

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

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

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

至少,这适用于 Node.js。理论上它应该适用于基于 Node.js 的 Meteor.js,尽管我使用 Meteor.js 已经有很长一段时间了,所以事情可能已经发生了变化。