2017-11-02 11 views
0

node.js에서 캔버스에 대한 일부 테스트를 수행하고 싶습니다.babel 및 npx와 함께 jsdom에서 예기치 않은 토큰을 사용합니다.

이것은 내 package.json

{ 
    "name": "test", 
    "description": "Test", 
    "version": "0.1.0", 
    "author": "[email protected]", 
    "dependencies": { 
    "canvas": "^1.6.7", 
    }, 
    "devDependencies": { 
    "babel-cli": "^6.26.0", 
    "babel-preset-env": "^1.6.1", 
    "babel-preset-stage-0": "^6.24.1", 
    "jsdom": "^11.3.0" 
    } 
} 

이 내 .babelrc

{ 
"presets": ["env", "stage-0"] 
} 

인이

const { jsdom } = require('jsdom'); 

// main 
jsdom(); 


console.log('done') 

I 스크립트를 실행 그러나 내 테스트 자바 스크립트 (a.js)이다,

이 오류의 원인을

/work/node_modules/jsdom/lib/api.js:10 
const { URL } = require("whatwg-url"); 
    ^

SyntaxError: Unexpected token { 
    at exports.runInThisContext (vm.js:53:16) 
    at Module._compile (module.js:374:25) 
    at Object.Module._extensions..js (module.js:417:10) 
    at Module.load (module.js:344:32) 
    at Function.Module._load (module.js:301:12) 
    at Module.require (module.js:354:17) 
    at require (internal/module.js:12:17) 
    at [stdin]:3:16 
    at Object.exports.runInThisContext (vm.js:54:17) 
    at Object.<anonymous> ([stdin]-wrapper:6:22) 

:

npx babel a.js | nodejs -- - 

나는이 오류가? 이 오류를 수정하려면 어떻게해야합니까?

버전 정보 :

Node.js를 : v4.2.6 OS : 우분투 16.04

+0

어떤 노드 버전입니까? – Li357

+0

v4.2.6. 우분투에서 실행 16.04 –

답변

1

당신은 jsdom와 호환되지 않는 노드 버전을 실행하고 있습니다. jsdom @ 10에는 nodejs v6이 필요합니다. 따라서 노드를 업그레이드하거나 다운 그레이드하십시오.

여기에 대한 정보 : https://github.com/tmpvar/jsdom#jsdom

+0

jsdom을 다운 그레이드하려면 어떤 버전을 사용해야합니까? –

+0

Jsdom에 따르면 : "(v10 아래의 jsdom 버전은 Node.js v4와 여전히 작동하지만 지원되지 않습니다.)" – ThatsRight

+0

오류 메시지를 피할 수있는 jsdom의 가장 높은 버전은 9.12.0입니다. –