问题标签 [babel-babylon]
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 - 如何用巴比伦创造一个“表情”?
我需要添加一个objectProperty,但它需要键和值:
t.objectProperty(键,值,...)
并且值必须是“表达式”。我假设它必须是对象表达式:
t.objectExpression(属性)
其中“属性”必须是 ObjectMethod 的数组 || 对象属性 || 传播属性。
但我想首先创建一个 ObjectProperty!那么什么是“表达式”以及如何创建它以创建 ObjectProperty?
node.js - 已经导出了。导出的标识符必须是唯一的。Babel babylon 错误
我是 .net 开发人员,我是 nodejs 环境中的新手
所以我把项目代码放在一个文件夹中,然后我使用
然后我使用 npm build 和 npm start build 命令,但它在 npm start build 命令之后给出了该错误
我搜索那个错误。我找到了那个解决方案。我认为错误是关于 babel/babylon
https://github.com/babel/babylon/releases/tag/v6.11.2
但我不明白那个解决方案。我应该将 https://github.com/babel/babylon/releases/tag/v6.11.2那个巴比伦文件下载到节点模块下吗?但是在我的节点模块文件夹中,这里没有巴比伦我的 package.json 如何将该项目安装到任何文件夹?只需复制文件和 npm install 就足够了?
已编辑
mockPlayer 函数中的 mockhelper.js 发生错误这里是文件代码
babeljs - 如何将 VariableDeclarator 转换为 AssignmentExpression?
我正在尝试将类似的东西var a = 5;
转换为类似的东西thing.a = 5
。
在我的访问者中使用下面的代码,它告诉我unexpected token .
我在这里没有考虑什么?
实现此目的的规范方法是什么?
javascript - 为什么 Babel 使用自上而下的解析器?
我正在研究编译器的构造,当然我也在研究这些概念的实际实现。其中一个例子是 Babel 的解析器:Babylon。
我浏览了巴比伦的代码,它似乎使用了一个自上而下的解析器和嵌入的即席语义规则。源代码
我期待 Babel 使用 LR 解析器的成员,并且可能是一个定义文件,其中语法产生与语义规则耦合在一起。为什么?嗯,主要是因为许多其他现实世界的语言使用 lr 解析器生成器,例如 Yacc、Bison 等,它们为您提供了这个精确的接口,并且似乎是一种更清晰、更易于维护的方式来表示这些规则,甚至当您考虑到 Babel 处于 Javascript 标准的边缘,一直在实现新事物。
我还构建了自上而下和自下而上(lr)解析器,我看不出两者之间的实现难度差异很大(两者同样困难:))
那么,为什么 Babel 的解析器使用自上而下的即席语法定向翻译,而不是我认为的更结构化的方法?这背后的设计决策是什么?我错过了什么?
谢谢!
javascript - 是否可以在修改后将 Babylon 解析的 AST 转换回源代码?
我试图通过以下方式修改 JavaScript 源代码:
- 使用@babel/babylon解析源代码并获取 AST
- 使用babel-traverse遍历 AST并在需要时进行一些修改
- 将 AST 转回 JavaScript 源代码
前两个步骤非常简单。但我坚持将 AST 转回源代码。
我做了一些搜索,只找到将 AST 转换为较低版本 JavaScript 代码的示例。
有什么建议么?
javascript - 如何将自定义 AST 转换为 JS 代码
我目前正在根据我设计的新语言规范生成自定义 AST。此自定义 AST 包含我设计的不同节点,其中包含我现在生成 JavaScript 代码所需的所有信息。例如:
假设我有一个 customExpressionNode,我希望将其转换为包含几个 if 条件的 JavaScript 函数。
我目前正在研究像 Babylon 和 Esprima 这样的库,以便从我的自定义 AST 生成新的 Javascript AST,但据我所知,这些库使用的 AST 非常复杂。我还想避免将js代码打印到几个文件中然后解析和编译它们,所以我的问题是:
有没有更好的方法以编程方式生成符合 JavaScript 的 AST,我可以使用它来生成 JavaScript 代码?
html - BABYLONJS:我需要创建 720*480 的 2D 背景标记,并根据屏幕的纵横比做出响应
伙计们,我目前正在使用 Phaser js,但现在我正在尝试实现 babylonjs,
我需要创建不会转换为 3D 的 720*480 静态舞台。
阶段应该是静止的。
它根据浏览器或屏幕的纵横比做出响应。
我尝试了各种选择,但没有成功。
感谢高级
javascript - Babel 插件:如何插入兄弟节点
似乎 path.insertAfter()、path.insertBefore()、path.unshiftContainer() 和 path.pushContainer() 仅适用于 Statements。如何插入不是语句的节点?
就我而言,我正在编写一个 babel jsx 插件,并且我正在尝试插入一个兄弟节点,它是一个 JSXExpressionContainer。当我这样做时,我收到以下错误:
TypeError: Property body[0] of BlockStatement expected node to be of a type ["Statement"] but instead got "JSXExpressionContainer"
我该如何解决?
javascript - 使用 Babylon.JS 在循环内停止/重新启动动画
我用三个动画设置这个循环,第一个在初始屏幕加载时运行(firstAnimation)。然后接下来的两个动画使用回调在它们之间循环(slideAnimation -> rotateAnimation -> slideAnimation...)
如何停止动画正在使用的动画并在..POINTERDOWN
上恢复它?PONTERUP
我在下面所做的方式仅在 firstAnimation 期间有效,一旦它进入循环,它显然不再针对这两个动画。那么我如何使用单个.pause() .resume()
命令来定位所有三个动画呢?
或者这是否需要一种不同的方法?
javascript - 如何使用 Babel 将文字函数转换为 AST
我正在尝试使用 Babel 更新 JS 配置对象。为此,我创建了一个以这种方式使用的 Babel 插件:
在内部,它调用一个toAst
函数来迭代文字元素并将它们作为 AST 返回。我设法让它在某种程度上适用于函数,但我正在寻找一种更好的方法来处理函数——无论它们是匿名函数、箭头函数等。
当前的“函数到 AST”函数
我这样做的原因是返回程序主体会返回如下内容:
但感觉真的很hacky。它还与匿名函数中断。任何有关正在发生的事情甚至代码的线索将不胜感激。
谢谢✌️