Javascript Acorn-为什么箭头函数抛出解析错误?

Javascript Acorn-为什么箭头函数抛出解析错误?,javascript,acorn,Javascript,Acorn,我试图用Acorn解析旧的React组件源代码 要分析的组件(ProjectNew2.js): 例外情况: SyntaxError:意外令牌(21:22) 问题:为什么Acorn在解析arrow函数时抛出异常? 当我将parse更改为: componentDidMount(){ // do some stuff here... } Acorn成功地解析了它。我相信您遇到的问题是,类字段在TC 39之前是一个函数,而不是Javascript语言的一部分(即使浏览器已经支持它们)。与JSX

我试图用Acorn解析旧的React组件源代码

要分析的组件(ProjectNew2.js):

例外情况:

SyntaxError:意外令牌(21:22)

问题:为什么Acorn在解析arrow函数时抛出异常?

当我将parse更改为:

componentDidMount(){
    // do some stuff here...
}

Acorn成功地解析了它。

我相信您遇到的问题是,类字段在TC 39之前是一个函数,而不是Javascript语言的一部分(即使浏览器已经支持它们)。与JSX非常相似,您可能需要解析它们。这几乎肯定与箭头函数无关,您可能会编写
类Foo{x='x'}
并得到相同的错误。

您是对的,“acorn类字段”插件解决了这个问题。@Artegon我很高兴您能让它工作。
#!/usr/bin/env node

const Fs = require('fs')
const acorn = require("acorn")
const jsx = require("acorn-jsx")

let fileName = "./ProjectNew2.js";
let cnt = Fs.readFileSync(fileName).toString()

let s = acorn.Parser.extend(jsx()).parse(cnt, {ecmaVersion: "latest", sourceType: "module"});

console.log(s)
componentDidMount(){
    // do some stuff here...
}