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

时间:2017-06-15 21:02:33

标签: node.js meteor jsdom

我正在尝试通过jsDom在服务器上渲染chartjs。 我有一个使用node.js&的工作版本。表达。 每当我添加以下代码时,目前在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. 根服务器文件夹中的
  6. 添加以下行var jsdom = require('jsdom');
  7. run meteor
  8. 目前我不确定如何解决这个问题。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

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

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