Node.js jsDOM和Meteor出现意外的令牌错误
我正试图通过jsDom在服务器上呈现ChartsJ。 我有一个使用node.js和Express的工作版本。 当前在Meteor项目中,每当我添加以下代码时Node.js jsDOM和Meteor出现意外的令牌错误,node.js,meteor,jsdom,Node.js,Meteor,Jsdom,我正试图通过jsDom在服务器上呈现ChartsJ。 我有一个使用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
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
要复制问题,请执行以下操作:
var jsdom=require('jsdom')代码>
任何帮助都将不胜感激。这是JSDOM新版本中尚未解决的错误。我在写的一个Express.js应用程序中也遇到了同样的问题。如果您更改为9.0.0版(在package.json中),然后更新应用程序(npm update…),或者如果您能够更新Node.js版本,那么问题就会消失,这也可以解决问题(我认为Meteor.js使用的是Node.js的旧版本)
至少,这适用于Node.js。理论上,它应该适用于Meteor.js,它是基于Node.js的,尽管我已经很久没有使用Meteor.js了,所以事情可能已经过去了。对于JSDOM的新版本来说,这是一个尚未解决的错误。我在写的一个Express.js应用程序中也遇到了同样的问题。如果您更改为9.0.0版(在package.json中),然后更新应用程序(npm update…),或者如果您能够更新Node.js版本,那么问题就会消失,这也可以解决问题(我认为Meteor.js使用的是Node.js的旧版本)
至少,这适用于Node.js。理论上,Meteor.js基于Node.js,它应该可以工作,尽管我已经很久没有使用Meteor.js了,所以事情可能已经开始了。你能试着发布一个简单的控制台应用程序来演示这个问题吗?我无法复制。谢谢你的答复。我在我最初的post步骤中添加了要复制的内容。我自己刚刚运行了这些步骤,也遇到了同样的问题。您是否执行了
meteor npm install
来安装所有必需的模块?@Khang是的,上面的复制假设已经完成。我在上面的步骤中没有看到该命令扫描您是否尝试发布一个简单的控制台应用程序来演示问题?我无法复制。谢谢你的答复。我在我最初的post步骤中添加了要复制的内容。我只是自己运行了这些步骤,并且遇到了同样的问题。您是否执行了meteor npm install
来安装所有必需的模块?@Khang是的,上面的复制假设已经完成。我没有看到上面步骤中的命令,我确实忘记了:)meteor自己的节点版本位于v4.8,jsdom在其文档中确实表示jsdom v11.0需要v6>。因此,将jsdom设置为v9就是解决方案。非常感谢。我确实忘记了:)meteor自己的节点版本位于v4.8,jsdom在其文档中确实表示jsdom v11.0需要v6>。因此,将jsdom设置为v9就是解决方案。非常感谢。