【问题标题】:Unexpected token in jsdom when used with babel and npx与 babel 和 npx 一起使用时 jsdom 中的意外标记
【发布时间】:2017-11-02 23:48:04
【问题描述】:

我想纯粹在 node.js 中在画布上做一些测试。

这是我的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

【问题讨论】:

  • 什么节点版本?
  • v4.2.6。在 ubuntu 16.04 上运行

标签: javascript npm babeljs


【解决方案1】:

您正在运行与 jsdom 不兼容的节点版本。 jsdom@10 需要 nodejs v6。所以要么升级Node,要么降级jsdom。

在这里找到相关信息:https://github.com/tmpvar/jsdom#jsdom

【讨论】:

  • 如果要降级jsdom,应该使用哪个版本?
  • 根据 Jsdom:“(低于 v10 的 jsdom 版本仍可与 Node.js v4 一起使用,但不受支持。)”
  • 我发现可以避免报错的jsdom的最高版本是9.12.0
  • 如果您发现答案正确并帮助您解决了问题,请将其标记为正确,以供遇到相同问题的其他人使用。
猜你喜欢
  • 2019-06-22
  • 2022-11-21
  • 2020-11-02
  • 1970-01-01
  • 2019-10-26
  • 2021-05-10
  • 1970-01-01
  • 2016-02-04
  • 2020-06-04
相关资源
最近更新 更多