当与babel和npx一起使用时,jsdom中出现意外的令牌

时间:2017-11-02 23:48:04

标签: javascript npm babel

我想纯粹在node.js中对canvas进行一些测试。

这是我的package.json

{
  "name": "test",
  "description": "Test",
  "version": "0.1.0",
  "author": "anthony@work",
  "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"]
}

这是我的测试javascript(a.js

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

// main
jsdom();


console.log('done')

但是,当我运行脚本时,

 npx babel a.js | nodejs -- -

我收到此错误:

/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)

导致此错误的原因是什么?我该如何解决这个错误?

版本信息:

Node.js:v4.2.6 操作系统:Ubuntu 16.04

1 个答案:

答案 0 :(得分:2)

您正在使用jsdom运行不兼容的节点版本。 jsdom @ 10需要nodejs v6。因此要么升级Node,要么降级jsdom。

在此处找到有关此内容的信息:https://github.com/tmpvar/jsdom#jsdom