2017-09-28 502 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;