问题标签 [traceur]
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 - 如何使用 gulp-traceur 和 gulp-webpack?
我正在尝试编译 ES6 js 文件。我在 gulp 管道中使用 gulp-traceur 和 gulp-wepback。
运行 gulp 时。我接受错误:意外的保留字。您可能需要适当的加载程序来处理此文件类型。在其中包含一个“类”字的行。(ES6 语法)
我不知道如何一起使用这些插件?
javascript - 原型上具有默认属性的 es6 类在 traceur 中抛出
我最近开始使用 traceur 并在原型上创建具有默认值的类时偶然发现了一个奇怪的行为。我想知道这是 traceur 中的错误还是 ES6 类的预期行为?
当我尝试设置它时,它会引发我无法分配给只读属性“v”的错误。这没有意义,因为属性是在原型上定义的,而不是在实例上。此外,我无法在密封/冻结/不可扩展的对象上抛出 es5 的错误,据我所知,代理没有在 V8 中实现,所以......它是如何首先抛出错误的? 这不是编译时错误。
我的主要兴趣不是“让它工作”,这是微不足道的。您需要做的就是用this.v = v
等价Object.defineProperty
物替换。我主要想知道它是否以及为什么会以这种方式运行,以及该数据结构中是否存在负面性能影响,通过将默认属性分配给原型而不是将它们存储在每个实例上来超过内存增益。
javascript - 在 ES6 函数定义中解构对象意外的标识符
我正在使用 traceur 创建一个基本的 ES6 示例,但是我在 chrome 中收到错误“unexpected identifier”(使用实验性 js),然后是输出。Plnkr 根本不输出任何东西。http://plnkr.co/edit/ruhoFM9r8nBabtvr87Cy?p=preview
我的问题是,为什么这在 plnkr 中不起作用。现在还有更可靠的方法来开始编写 ES6 吗?
maven - 将 ES6 转换为使用 Traceur 或 Babel 的 ES5 的 Maven 插件
是否已经有一种首选方法如何在 maven 项目中使用 traceur 或 Babel(以前称为 6to5)将 ECMAScript6 代码转换为 ECMAScript5?我已经在网上搜索了没有任何成功。
javascript - 使用 traceur 加载 ES5 和 ES6 npm 模块
我正在使用 traceur 在 node.js 下启用 ES6 开发traceur.require.makeDefault
。这没有问题。
我使用 Gemfury 作为私有 npm 存储库,这也可以。我正在使用 ES6 创建自己的 npm 包。我遇到的挑战是如何支持同时加载 ES5 和 ES6 模块。典型的traceur.require.makeDefault
示例代码块会跳过node_modules
路径中包含目录的任何内容。
这是我解决这个问题的方法:
还有一个package.json
适用于上述代码的 ES6 模块的示例(出于隐私考虑,一些信息已被删除):
给定一个特定的 npm 模块路径,此代码将遍历目录树,直到找到一个package.json
文件、读取它并检查es6
密钥。如果为 true,则它允许 traceur 处理文件。
我的问题是:鉴于上述实现,有没有更好的方法来做到这一点?
angularjs - 无法让 ocLazyLoad 与 ES6 一起工作(AMD 模式下的 Traceur 和模块)
我有一个项目,我使用 Traceur 以 ES6 格式开发我的代码,并将模块加载设置为转换为 AMD 样式以使用 RequireJS。我有以下代码(从 ocLayLoad 示例项目中获得)
如果我使用带有 ocLazyLoad + RequireJS 的纯 ES5 样式,一切正常。但是,当 Traceur 处理该类时,它被包装在一个 define() 函数中,如下所示:
但是,在这种情况下,由于某种原因,延迟加载不起作用。它会抛出一个错误,即模块“testApp”未在 Angular 中注册。想法是什么阻止了 ocLazyLoad 加载模块?
angularjs - angularjs http拦截器类(ES6)失去对'this'的绑定
我正在使用 ES6 类构建和 AngularJS 应用程序,并将 traceur 转换为 AMD 格式的 ES5。
在我的模块中,我导入拦截器类并将其注册为服务,然后使用 module.config 中的 $httpProvider.interceptors 注册此服务:
我的拦截器类同时注入$q和$window服务,将它们保存在构造函数中以备后用。我使用调试器跟踪了这一部分,并且注入正常进行:
当我发出一个以401响应的请求时,拦截器会适当地触发,但在“responseError”方法中,“this”变量指向窗口对象而不是我的拦截器,因此我无权访问this.$q或这个.$窗口。
我不知道为什么?有任何想法吗?
jasmine - ES6 - 如何使用 ES6 之类的“导入”语句通过业力测试 Jasime 测试
我是 javascript 新手,试图编写一个具有 ES6 之类的 import 语句的规范,然后通过 Karma 使用预处理器作为 traceur 和 browserify 执行它(捆绑并提供“require”方法)。它继续给我一个无效语法的错误,并且在查看浏览器中呈现的规范文件时,它看起来 traceur 从未真正处理过该文件。
这是 github 上的项目链接-> https://github.com/gt-tech/es6-traceur-browserify-karma
我也在这里描述了这个问题,因为我正在使用那个生成器 - > https://github.com/Swiip/generator-gulp-angular/issues/380
javascript - 嵌套 ES6 类?
似乎可以在构造函数中嵌套一个类,然后可以从类中的任何位置实例化,这是官方的吗?
[编辑] 例如,
traceur 生成的 JS https://google.github.io/traceur-compiler/demo/repl.html
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 工作?