问题标签 [transpiler]

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 回答
969 浏览

javascript - 使用 dart 作为 node.js 的转译器

有没有办法在 node.js 中使用 dart 语言?诸如 livescript、coffeescript、typescript 之类的东西。

谢谢!

0 投票
7 回答
17040 浏览

compiler-construction - 编译器 vs 解释器 vs 转译器

在我参加的一个 reactJS 会议期间,演示者使用了一个术语 transpiler 来进行一些代码转换/移植。在将语言代码转换为计算机系统/机器上的可运行形式时,我一直使用并听说过编译器和解释器这两个术语。转译器对我来说是新的。转译器与编译器或解释器有何不同,为什么真的需要它?

0 投票
1 回答
269 浏览

javascript - 了解 Emscripten/ASM.js 和浏览器沙箱

对不起这里的基本问题。我正在尝试围绕 Emscripten、ASM.js 以及将低级语言编译为 javascript。

这是我不明白的。您可以在原生 C 程序中做一些在基于浏览器的 js 中不能(也不应该)做的事情。例如,在本机应用程序中,您可以访问文件系统或关闭计算机。

假设我编写了一个读取 /etc/passwd 然后关闭计算机的 C 程序。然后,我将该程序编译为 js 并将其弹出到<script>标签中。当我访问带有<script>标签的页面时会发生什么?显然,它不会关闭计算机,但它甚至会编译吗?

在我看来,与低级语言相比,在浏览器中运行的 javascript 是如此有限,以至于我无法看到任何有意义的应用程序可以简单地编译为 js 而不会完全破坏它。

0 投票
1 回答
784 浏览

javascript - 在 IE8 中包含 ECMA 5 脚本

目前,我在我的代码中使用hls.js来播放 hls 流。原始代码是用 ECMA 版本 6 编写的,然后转译成 ECMA 5 并放在 dist 文件夹中(链接上方)。它在其他地方完美运行。

如果库中的函数,我不打算使用任何函数。我只是想包括它。在 IE8 上呈现它会导致语法错误。

是否可以将 js 文件转换为与 IE8 兼容的版本,或者我应该找到一种根本不包含该文件的方法?

编辑

之后,我尝试执行以下操作:

但是,它仍然在 IE8 上给出以下错误:

Expected identifier hls.js, line 320 character 31

编辑 2

我使用以下.babelrc文件将其转换为es3文件并修复了一些其他错误。

但是,现在我在IE8.

具体报错就行了Object.defineProperty。似乎 IE 8 不支持该defineProperty方法。有没有办法解决这个问题。`?

0 投票
0 回答
422 浏览

javascript - Babel 在转译的 ES5 Vue 组件代码中导致 Uncaught TypeError

处理需要通过套接字发送 JSON 对象的小型 Node.js 项目。我发现 JsonSocket ( https://github.com/sebastianseilund/node-json-socket ) 可以满足我的需求,并且运行该作者提供的简单服务器/客户端演示效果很好。

我正在将演示客户端代码 ( https://github.com/sebastianseilund/node-json-socket#simple-clientserver-example ) 改编为Vue.js-Babel-Browserify项目框架并将代码放在 .vue 组件中文件。data更改主要涉及通过由 HTML 按钮触发的套接字连接将数据从 HTML 文本字段(绑定参数中包含的默认文本)传递到侦听服务器。但此时我并没有超越按钮触发器。

我得到的是:Uncaught TypeError: _net2.default.Socket is not a constructor使用此转译代码通过套接字发送数据时:var socket = new _jsonSocket2.default(new _net2.default.Socket());

以下是原始 .vue 代码:

这是脚本相关部分的转译代码:

不知道为什么 Babel 破坏了这条线(<---标记在两个窗口的代码中)。

不知何故,我觉得这与 Babel 和 ES6 的 Unexpected "Uncaught TypeError: XXX is not a constructor" 错误有关,但在这种情况下,解决方案围绕在 require 语句中添加访问默认属性。我不确定如何import在 vue 组件内部完成同样的任务。

任何朝着正确方向的刺激都将不胜感激。

0 投票
2 回答
579 浏览

javascript - Visual Studio 认为存在语法错误,但没有

我正在 Visual Studio 中使用 Aurelia 构建一个网站,它具有 babel 转译器,我的配置文件如下所示

Visual Studio 报告错误。Expected ';'在第 4 行。然而,这似乎是正确的语法,app.js 可以工作,我可以浏览到 app.html,而不会在控制台中出现任何问题。这是有问题的代码。

如果我尝试使用更标准的 javascript 行

或者

Visual Studio 没有报告任何问题,但 AureliaError: (SystemJS) http://localhost:57366/src/app.js: Unexpected token (4:8)在控制台中抛出了上述两个问题。

知道如何让 Visual Studio 使用与 babel 转译器相同的智能感知吗?或者可能是什么问题?

0 投票
2 回答
11222 浏览

javascript - 类型错误 - 不是构造函数

想要在 ES6 javascript 中实例化一个模块并转换为 ES5。我正在我的项目中设置一个新类,即 es6 / webpack。我有 2 个文件:track.js,其中包含以下内容——

另一个是 index.js——

我试图让控制台日志显示一个空对象。相反,我得到 - Uncaught TypeError: _track.Track is not a constructor

0 投票
1 回答
1613 浏览

javascript - 在 Node.js 中使用 TypeScript 异步等待

我发现不可能同时完成接下来的 4 件事:

  1. 用 Node.js 编写
  2. 用 TypeScript 写作
  3. 使用async await
  4. 轻松调试

解释:

我有一个用 TypeScript 编写的 Node.js 项目,我想在其中使用async await.

现在的问题是,如果我转译为 ES6,import 关键字会产生“意外的令牌导入”错误,如下所述:Node.js 不支持 ES6 导入和导出,而如果我转译为 ES5,则会async await变成不可读的代码:

这个:

变成这样:

我该如何解决这个悖论?

0 投票
1 回答
38 浏览

javascript - 使用 babel 避免“默认”属性间接

我正在使用 babel 将 ES2015 代码转换为 ES5 和 RequireJS。

但是当我使用以下语法时:

转译的结果是一个带有default属性的对象。

IE。它目前被转译为:

我想要的是直接返回的对象文字本身(包含 foo 属性)。

IE。我想要类似的东西:

我能做到这一点吗?

0 投票
1 回答
70 浏览

sass - 在 SCSS 中评论而不转译

我最近才开始使用 SCSS,想知道是否有一种方法可以放置未翻译到 CSS 文件中的注释。我在 PHPStorm 中使用 SASS 转译器作为插件。