问题标签 [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.
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 是一种浪费,但可能是必要的......)
javascript - 如何在网页中使用 ECMAScript6 模块
我对现在通过 Babeljs 使用 ECMAScript 6 功能感到非常兴奋 - 特别是,我很想开始使用新的模块功能使我的 JavaScript 代码更加模块化。
这是我到目前为止所写的:
我知道我可以通过命令行上的 babel 将此代码从 ES6 转换为 ES5:
但是我需要做什么才能在我的 HTML 中使用此代码?
例如,这个 index.html 文件会是什么样子:
谢谢
javascript - 如何在启用 ES6 功能的情况下运行 Node.js 应用程序?
我使用BabelJS(以前称为 6to5)的require 钩子来运行具有es6features的节点应用程序:
我打电话node run.js
来运行我的app.js6。我需要安装 BabelJS 并为我想使用 es6features 的每个项目提供一个run.js。我更喜欢这样的电话nodejs6 app.js6
。我怎样才能独立实现这个系统(Unix和Windows)?
javascript - Babel.js 尾调用中的“_function:while”语法是什么?
最近我在看Babel.js (previously 6to5)。它是 ES6 的转译器。它提供的一项有趣的功能是将尾调用更改为循环。在示例中:
Babel.js 将其转换为:
我的问题是,我从未见过像_function: while(again)
. 但它是有效的 JavaScript!我尝试a: 1
在 Chrome devtools 控制台中输入类似的代码,这是正确的。
谁能告诉我:
- 这个语法叫什么名字?
- 我在哪里可以获得语法信息?
- 在什么情况下我们需要写这样的代码?
gulp - babel/6to5 - 导出模块时重复的代码
我正在使用 Babel 将 ES6 转换为 ES5,效果很好。唯一的问题是,一旦编译,每个模块都会重复这些行:
由于我的应用程序将有越来越多的模块定义类,我无法想象仅仅因为这些重复的代码而占用如此多的空间。
有没有办法告诉 Babel 不要将它们包含在每个模块中,以便我们以后只能添加一次?
我正在使用 gulp,我的配置是:
非常感谢你的帮助!
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 工作?
javascript - gulp watch with babel 然后 pm2 重启
\嘿伙计们,我完全被这个困住了。
基本上我希望我的本地开发人员能够让 gulp 监视我的 src js 文件并用 babel 转换它们并将它们输出到我的 dist 文件夹,然后在完成之后让 pm2 restart 节点加载最新的更改。
我遇到的问题是我一生都无法弄清楚如何添加回调来观看,以便重新启动 pm2 的调用仅在 babel 完成其魔术转换文件之后发生。
任何帮助将不胜感激!
javascript - 错误:使用 mocha 测试时找不到模块
我正在使用babeljs
编写一个 RPG 引擎库。我有两个文件:
骰子.js
throwManager.js
p>当我用 测试它们时mocha
,我会执行以下导入:
测试.js
然而,当我运行测试时,我得到了这个:
dice
为什么找不到模块的任何想法?
我正在编译代码babel src --out-file Amzhen.js && mocha
javascript - 以不同的名称导入 ES6 类
使用gulp、 browserify 和 babelify,导出/导入类工作正常,直到我尝试以不同的名称导入同一个类:
所以当我运行 gulp 构建的脚本时,错误是:
来自 babel 生成的代码
我在那里做错了什么?请注意,没有 jslint 错误
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 中,我的配置非常简单:
难道我做错了什么?