问题标签 [babeljs]

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 投票
2 回答
1979 浏览

javascript - 测试为 es6 编译的代码

我正准备使用 Qunit 为一个 Backbone 应用程序编写一些测试,该应用程序是为 ES6 编写的,并应用了 babel.js,以便它可以在现代浏览器中运行。为了确保我正确设置了 qunit 并正确指定了所有路径,我首先测试了一个用 ES5 编写的 Backbone 模型,并且一切都按预期工作。但是,我随后将bundle.js(其中包含应用了 babel.js 的 ES6 代码的结果)包含在我的tests/index.html.

它告诉我ES6Model没有定义。

问题:babeljs 转换的代码是否有一些东西会使使用 Qunit 进行测试变得更具挑战性?

除了babel在文件顶部写的所有复杂的js之外,里面的代码bundle.js看起来是这样的

更新

我将 babel.js 创建的所有代码包含在一个名为的文件中bundle.js,并将其包含在我的 index.html 中,就像我对任何其他 js 文件一样,它运行没有问题,这就是为什么我假设我可以像任何其他 js 代码一样对其进行测试. 但是,应该注意(正如评论者指出的那样)babel.js 创建的代码包含在一个模块中。这就是 bundle.js 如何从我尝试测试的模型开始的

更新

我正在使用 browserify 将 babel 应用于创建捆绑包的 ES6 代码的各种文件。为了运行测试,我做npm run test了并编译了包,我尝试了这两个(其中一个使用modules --ignore),但它们都不起作用

“脚本”:{

(该应用程序是一个 Backbone.js 应用程序)。

这是我的业力配置文件。我没有任何进一步的配置(所以我猜我包含 karma-require 是一种浪费,但可能是必要的......)

0 投票
4 回答
12537 浏览

javascript - 如何在网页中使用 ECMAScript6 模块

我对现在通过 Babeljs 使用 ECMAScript 6 功能感到非常兴奋 - 特别是,我很想开始使用新的模块功能使我的 JavaScript 代码更加模块化。

这是我到目前为止所写的:

我知道我可以通过命令行上的 babel 将此代码从 ES6 转换为 ES5:

但是我需要做什么才能在我的 HTML 中使用此代码?

例如,这个 index.html 文件会是什么样子:

谢谢

0 投票
8 回答
103969 浏览

javascript - 如何在启用 ES6 功能的情况下运行 Node.js 应用程序?

我使用BabelJS(以前称为 6to5)的require 钩子来运行具有es6features的节点应用程序:

我打电话node run.js来运行我的app.js6。我需要安装 BabelJS 并为我想使用 es6features 的每个项目提供一个run.js。我更喜欢这样的电话nodejs6 app.js6。我怎样才能独立实现这个系统(Unix和Windows)?

0 投票
1 回答
591 浏览

javascript - Babel.js 尾调用中的“_function:while”语法是什么?

最近我在看Babel.js (previously 6to5)。它是 ES6 的转译器。它提供的一项有趣的功能是将尾调用更改为循环。在示例中:

Babel.js 将其转换为:

我的问题是,我从未见过像_function: while(again). 但它是有效的 JavaScript!我尝试a: 1在 Chrome devtools 控制台中输入类似的代码,这是正确的。

谁能告诉我:

  1. 这个语法叫什么名字?
  2. 我在哪里可以获得语法信息?
  3. 在什么情况下我们需要写这样的代码?
0 投票
1 回答
1651 浏览

gulp - babel/6to5 - 导出模块时重复的代码

我正在使用 Babel 将 ES6 转换为 ES5,效果很好。唯一的问题是,一旦编译,每个模块都会重复这些行:

由于我的应用程序将有越来越多的模块定义类,我无法想象仅仅因为这些重复的代码而占用如此多的空间。

有没有办法告诉 Babel 不要将它们包含在每个模块中,以便我们以后只能添加一次?

我正在使用 gulp,我的配置是:

非常感谢你的帮助!

0 投票
0 回答
706 浏览

traceur - Aurelia 应该使用 traceur 而不是 babel 吗?

我正在尝试使 aurelia 示例应用程序与 traceur 而不是 babel 一起使用。目的是拥有静态成员,据我所知,babebl(https://github.com/babel/babel/issues/68)不支持这些成员并学习 gulp。到目前为止,我在 gulp 构建任务中用 traceur 替换了 babel,它可以构建,但是在浏览器中失败并出现各种花哨的错误(例如,它拒绝来自 main.js 的 LogManager.addAppender 并带有“Uncaught TypeError: Cannot read property 'addAppender' of undefined”) . 因此,在开始研究 traceur 编译选项之前,我想了解一些经验丰富的选项:

Aurelia 是否应该至少在理论上能够使用 traceur 而不是 babel 工作?

0 投票
1 回答
3663 浏览

javascript - gulp watch with babel 然后 pm2 重启

\嘿伙计们,我完全被这个困住了。

基本上我希望我的本地开发人员能够让 gulp 监视我的 src js 文件并用 babel 转换它们并将它们输出到我的 dist 文件夹,然后在完成之后让 pm2 restart 节点加载最新的更改。

我遇到的问题是我一生都无法弄清楚如何添加回调来观看,以便重新启动 pm2 的调用仅在 babel 完成其魔术转换文件之后发生。

任何帮助将不胜感激!

0 投票
1 回答
25433 浏览

javascript - 错误:使用 mocha 测试时找不到模块

我正在使用babeljs编写一个 RPG 引擎库。我有两个文件:

骰子.js

throwManager.js

p>

当我用 测试它们时mocha,我会执行以下导入:

测试.js

然而,当我运行测试时,我得到了这个:

dice为什么找不到模块的任何想法?

我正在编译代码babel src --out-file Amzhen.js && mocha

0 投票
1 回答
2296 浏览

javascript - 以不同的名称导入 ES6 类

使用gulp、 browserify 和 babelify,导出/导入类工作正常,直到我尝试以不同的名称导入同一个类:

所以当我运行 gulp 构建的脚本时,错误是:

来自 babel 生成的代码

我在那里做错了什么?请注意,没有 jslint 错误

0 投票
1 回答
4223 浏览

javascript - 使用 Babel 将 ES6 模块转换为 ES5 AMD 模块,无法按预期工作

我希望有人能帮帮忙。

我正在使用 grunt-babel 将我的 ES6 模块代码转换为 ES5 AMD 模块代码。这是我的 ES6 代码:

乘法.js

square.js

应用程序.js

正如你所看到的,我所做的只是创建一个模块'multiply',将它导入另一个模块'square',然后最后在我的主js文件中使用'square'。上面的 3 个文件然后被转换为以下内容:

乘法.js

square.js

应用程序.js

我遇到的问题是我希望将“app.js”文件转换为更像这样的东西:

在我的 gruntfile.js 中,我的配置非常简单:

难道我做错了什么?