Javascript Acorn-为什么箭头函数抛出解析错误?
我试图用Acorn解析旧的React组件源代码 要分析的组件(ProjectNew2.js): 例外情况: SyntaxError:意外令牌(21:22) 问题:为什么Acorn在解析arrow函数时抛出异常? 当我将parse更改为: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
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...
}