问题标签 [esprima]

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.

0 投票
1 回答
286 浏览

javascript - 等待未在 esprima 4.0.1 中解析

无法让esprima 4.0.1 解析器与“等待”一起使用。如果可能的话,很难找到可以传递给“等待”的解析函数的相关选项。

重现步骤

预期产出

描述包含 await 调用的代码结构

实际输出

错误:第 1 行:意外的标识符

0 投票
1 回答
327 浏览

npm - EOENT esprima esparse Windows 符号链接无效目录文件未找到

我正在接管一个过时的电子 webpack + react 应用程序,我的构建总是出现这个错误:

Cannot read file C:\Users\baz\Desktop\foo-bar-app\node_modules\esprima\.bin\esparse: Error: ENOENT: no such file or directory, open 'C:\Users\baz\Desktop\foo-bar-app\node_modules\esprima\.bin\esparse' at w (C:\Users\baz\Desktop\foo-bar-app\node_modules\app-builder-lib\src\asar\asarUtil.ts:201:11) at writeStream.write (C:\Users\baz\Desktop\foo-bar-app\node_modules\app-builder-lib\src\asar\asarUtil.ts:203:43) at afterWrite (_stream_writable.js:480:3) at onwrite (_stream_writable.js:471:7) at lazyFs.write (internal/fs/streams.js:304:5) at FSReqWrap.wrapper [as oncomplete] (fs.js:502:5) error Command failed with exit code 1.

我发现 esprima 在它的 .bin 文件夹中创建了 esparse 的符号链接,但是尝试在资源管理器中打开符号链接会给出一个“无效目录”警告框,所以我认为这与 ENOENT 有关

任何线索如何解决这个问题?

0 投票
1 回答
407 浏览

abstract-syntax-tree - 如何通过javascript(esprima)将一个节点插入抽象语法树

有一个关于 esprima 和插入 ast 节点的问题。

我尝试生成一个 ast 节点以用新节点 (node = newNode) 替换其他节点,但它不起作用。

0 投票
1 回答
452 浏览

node.js - escodegen.generate 抛出错误:未知节点类型:未定义

以下是我写的代码

我能够对代码字符串进行标记,但在生成代码时出现错误。我浏览了多个样本,到处都遵循相同的模式。我不明白我做错了什么。

0 投票
1 回答
727 浏览

javascript - 无限循环保护

我正在开发 JavaScript 代码编辑器,用户可以在其中在浏览器中编写自己的 JavaScript 代码并运行它。我需要找到一种方法来打破无限循环。当我得到代码时:

我想将代码转换成这样的:

我偶然发现了 Web-Maker,它的功能正是如此。我无法获得转换传入代码的函数。我已经尝试过addInfiniteLoopProtection('while (1) doSomething()', { timeout: 1000 }),但它返回'while (1) doSomething()'而不是更改代码以跳出无限循环。

这是我对codepen的尝试

0 投票
1 回答
100 浏览

javascript - 如何使用 recast/esprima 创建等待表达式

我有一个js函数

我正在尝试await User.destroy({ where: {} })使用以下插入一行

但我坚持。因为esprimaUnexpected Identifier需要一个异步声明。我还能如何实现这一目标?

0 投票
1 回答
655 浏览

javascript - Esprima 获取函数和变量声明

我想获取在 Javascript 代码中进行的所有函数和变量声明。我使用 esprima,我想知道是否有脚本可以用于我的目标?

例如我们有这样的代码:

我除了:

带变量的数组

还有一个带有函数的数组:

任何想法如何实现这一目标?

0 投票
1 回答
337 浏览

javascript - 如何向 acorn 或 esprima 解析器添加关键字

我正在研究一种可以转换为 javascript 并具有类似语法的语言。但是我想包含一些新类型的块语句。出于语法目的,它们与 IfStatement 相同。如何让 esprima 或 acorn 解析这个程序MyStatement {a=1;}而不抛出错误?如果它称它为 IfStatement,那很好。我宁愿不分叉 esprima。

0 投票
0 回答
44 浏览

javascript - 从javascript中提取特定的函数调用

我想从 javascript 文件中提取函数调用。

例如:

我想提取完整的调用:

我想我必须为此使用一些像 Esprima 这样的 JS 标记器。欢迎任何代码示例指针。

0 投票
3 回答
22588 浏览

javascript - 如何在 DENO 中使用 npm 模块?

德诺超级酷。早上看到了,现在想迁移到deno。我试图将我现有的 nodejs 脚本移动到 deno。任何人都可以帮助我了解如何在 deno 中使用 npm 模块。我需要 esprima 模块。这个有包https://github.com/denoland/deno_third_party/tree/master/node_modules但我不知道如何使用它。