问题标签 [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.
javascript - 使用 dart 作为 node.js 的转译器
有没有办法在 node.js 中使用 dart 语言?诸如 livescript、coffeescript、typescript 之类的东西。
谢谢!
compiler-construction - 编译器 vs 解释器 vs 转译器
在我参加的一个 reactJS 会议期间,演示者使用了一个术语 transpiler 来进行一些代码转换/移植。在将语言代码转换为计算机系统/机器上的可运行形式时,我一直使用并听说过编译器和解释器这两个术语。转译器对我来说是新的。转译器与编译器或解释器有何不同,为什么真的需要它?
javascript - 了解 Emscripten/ASM.js 和浏览器沙箱
对不起这里的基本问题。我正在尝试围绕 Emscripten、ASM.js 以及将低级语言编译为 javascript。
这是我不明白的。您可以在原生 C 程序中做一些在基于浏览器的 js 中不能(也不应该)做的事情。例如,在本机应用程序中,您可以访问文件系统或关闭计算机。
假设我编写了一个读取 /etc/passwd 然后关闭计算机的 C 程序。然后,我将该程序编译为 js 并将其弹出到<script>
标签中。当我访问带有<script>
标签的页面时会发生什么?显然,它不会关闭计算机,但它甚至会编译吗?
在我看来,与低级语言相比,在浏览器中运行的 javascript 是如此有限,以至于我无法看到任何有意义的应用程序可以简单地编译为 js 而不会完全破坏它。
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
方法。有没有办法解决这个问题。`?
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 组件内部完成同样的任务。
任何朝着正确方向的刺激都将不胜感激。
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 转译器相同的智能感知吗?或者可能是什么问题?
javascript - 类型错误 - 不是构造函数
想要在 ES6 javascript 中实例化一个模块并转换为 ES5。我正在我的项目中设置一个新类,即 es6 / webpack。我有 2 个文件:track.js,其中包含以下内容——
另一个是 index.js——
我试图让控制台日志显示一个空对象。相反,我得到 - Uncaught TypeError: _track.Track is not a constructor
javascript - 在 Node.js 中使用 TypeScript 异步等待
我发现不可能同时完成接下来的 4 件事:
- 用 Node.js 编写
- 用 TypeScript 写作
- 使用
async await
- 轻松调试
解释:
我有一个用 TypeScript 编写的 Node.js 项目,我想在其中使用async await
.
现在的问题是,如果我转译为 ES6,import 关键字会产生“意外的令牌导入”错误,如下所述:Node.js 不支持 ES6 导入和导出,而如果我转译为 ES5,则会async await
变成不可读的代码:
这个:
变成这样:
我该如何解决这个悖论?
javascript - 使用 babel 避免“默认”属性间接
我正在使用 babel 将 ES2015 代码转换为 ES5 和 RequireJS。
但是当我使用以下语法时:
转译的结果是一个带有default
属性的对象。
IE。它目前被转译为:
我想要的是直接返回的对象文字本身(包含 foo 属性)。
IE。我想要类似的东西:
我能做到这一点吗?
sass - 在 SCSS 中评论而不转译
我最近才开始使用 SCSS,想知道是否有一种方法可以放置未翻译到 CSS 文件中的注释。我在 PHPStorm 中使用 SASS 转译器作为插件。