在npm纸模块中使用paper-node.js“TypeError:jsdom.jsdom不是函数”

时间:2017-09-28 00:22:22

标签: javascript node.js npm typeerror jsdom

我已经安装了webppl-agents库(以及webpplwebppl-dp)并尝试运行命令行测试,但我遇到了一些麻烦。来自npm纸模块(1) (2) (3) (4)的jsdom似乎存在依赖性问题,但我无法完全解决问题在这一点上。

有人知道这里发生了什么吗?我只需要使用更新版本的纸张吗?

 PS C:\Users\user\.webppl\node_modules\webppl-agents> webppl --require webppl-dp --require . tests/tests.wppl
C:\Users\user\.webppl\node_modules\webppl-agents\node_modules\paper\dist\paper-node.js:10835
        document = jsdom.jsdom('<html><body></body></html>'),
                         ^

TypeError: jsdom.jsdom is not a function
    at new <anonymous> (C:\Users\user\.webppl\node_modules\webppl-agents\node_modules\paper\dist\paper-node.js:10835:19)
    at Object.<anonymous> (C:\Users\user\.webppl\node_modules\webppl-agents\node_modules\paper\dist\paper-node.js:33:13)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)

    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (C:\Users\user\.webppl\node_modules\webppl-agents\src\visualization\gridworld.js:1:75)

1 个答案:

答案 0 :(得分:1)

最近发生了一些重大变化。以下初始化jsodmdocumentwindow的方法为我解决了这个问题:

import jsdom from 'jsdom';  
const {JSDOM} = jsdom;  
const {document} = (new JSDOM('<!doctype html><html><body></body></html>')).window;  
global.document = document;  
global.window = document.defaultView;