问题标签 [acorn]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 从javascript中提取特定的函数调用
我想从 javascript 文件中提取函数调用。
例如:
我想提取完整的调用:
我想我必须为此使用一些像 Esprima 这样的 JS 标记器。欢迎任何代码示例指针。
javascript - 如何让 acornjs 正确地检查私有类字段和方法的样式?
我正在做一个项目,我需要对我的代码使用样式检查。我想使用 acorn js,但是在尝试解析私有类字段和类方法时失败。
我试过了:
但是运行时会失败。这是错误消息:
我需要能够使用私有类字段和方法,但我不知道如何让 acorn 正确解析它。
javascript - 如何从另一个 javascript 文件中获取对象键和值
我正在使用 $ npm run index.js
在 index.js 文件中,我正在循环并获取以下文件的列表,从我们需要读取“testData”的文件中,请您帮忙获取数据
每个文件都有
我的代码:index.js
javascript - 使用 acorn-walk 跟踪 AST 中的范围
我需要跟踪 AST 的范围,以使用 JS 中的 acorn-walk 将所有表达式排列到层次结构中。文档很少,所以我很无能为力。感谢所有的帮助!
python - 解析器获取令牌的开始和结束位置
我正在尝试复制为 JavaScript 文件构建的错误检测软件,以使用它来查找 Python 文件中的错误。
该过程涉及根据列号查找标记的开始和结束位置。
下面是在 .js 文件上使用 acorn JS 解析器的输出:
在上图中,标记的开始和结束位置是整个文档中的列号。
我检查了 Python 标记器,它只给出了与上图中相同的 loc.start 和 loc.end 值。
但是如何像橡子输出图片一样获取 python 标记的开始和结束值?
javascript - babel 插件语法在哪里定义?
我正在构建一个 babel 插件,并且可以在 Babel repo 中找到许多已经编写好的插件示例。
我找不到用于编写这样一个插件的权威 API 文档——尤其是对于我可以在生成的 AST 上执行的操作。
我检查过
- babel 本身(这也是 ASTExplorer README 链接的内容
- 橡子文档
- 谷歌搜索“Babel 转换 API”
- 通天塔手册
- Mozilla Parser API和其中链接的ESTree API
简单列举几个地方。它们甚至都没有定义.get
我在现有插件中经常调用的通用方法,更不用说我可以在路径、节点、范围或绑定上调用的其他函数了。
Babel 7 转换是否存在明确的文档来源?如果是这样,它在哪里?
javascript - 在 Acorn 中禁用重复声明验证
我正在使用Acorn将一些语法上有效的 JavaScript 代码解析为 ESTree 以进行进一步处理。Acorn 似乎也进行了一些语义检查 - 特别是它会为重复声明引发错误。例如,解析以下代码会引发错误Identifier 'f' has already been declared
:
我不希望检查此类语义错误 - 我正在对生成的 ESTree 进行自定义处理,因此源代码的语义有效性对我来说并不重要。
我已经查看了该parse(input, options)
功能的 Acorn 选项,但我找不到任何听起来像我想要的东西。
有没有办法禁用这种语义检查?
javascript - 带有 Snowpack 的 JavaScript 私有类方法
我在前端代码中使用私有 JavaScript 类方法,在开发工作流程中使用Snowpack。
目前(从 v2.15.0-pre.5 开始),Snowpack 似乎不能很好地与私有类方法一起使用,即,在使用以下方法构建时失败snowpack build
:
复制的回购是here。克隆后,运行:
我已经打开了一个关于 Snowpack 的问题,但显然问题在于与 Rollup 的集成,并且修复不是优先事项。
据我了解,要解决它,我们需要:
- Snowpack的自定义汇总插件。
- 这样的插件应该
acornInjectPlugins
用来注入acorn-private-methods
。
在我深入学习 Rollup 生态系统之前,我想知道是否有人可以提供一个示例?
或者也许还有另一种方法可以让它发挥作用?
由于时间限制,我现在重新开始使用_methodName
,但我计划在时间允许时提供修复。#methodName
javascript - 将javascript文件作为命令行参数读入Node并解析它
我正在编写一个需要将配置文件作为命令行参数的 npm 模块。目前我有一个像这样的json文件:
有了这个,我可以像这样运行我的模块:
现在我想做同样的事情,但使用 .js 文件作为配置文件。
如何解析该文件并将结果对象存储到变量中?我查看了 npm 包 acorn
,但是用 acorn 解析只是给了我一个 AST,但我可以弄清楚如何将其转换为可执行代码?
javascript - Acorn - 为什么箭头函数会引发解析错误?
我正在尝试用 Acorn 解析旧的 React 组件源代码。
要解析的组件(ProjectNew2.js):
任何我的 JavaScript 代码:
和例外:
SyntaxError:意外的令牌 (21:22)
问题:为什么 Acorn 在解析箭头函数时会抛出异常?
当我将解析更改为:
Acorn 成功解析它。