2017-09-28 242 views
1

我已经安装了webppl-agents库(以及webpplwebppl-dp),并且正在尝试运行命令行测试,但我遇到一些麻烦。从npm纸质模块(1)(2)(3)(4)看来,这是一个依赖性问题,但是在这一点上我还没有完全掌握这个问题。“TypeError:jsdom.jsdom不是函数”在npm纸模块中使用paper-node.js

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

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) 

回答

0

最近有一些突破性的变化。以下初始化方式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;