标签: traceur

Maven Plugin将ES6转换为使用Traceur或Babel的ES5

是否已经有一种首选方法如何在maven项目中使用traceur或Babel(名为6to5)将ECMAScript6代码转换为ECMAScript5?我已经搜索过网络而没有任何成功.

maven-plugin maven ecmascript-6 traceur babeljs

14
推荐指数
1
解决办法
6296
查看次数

Traceur在多大程度上编译为兼容IE8的Javascript?

我正在研究的项目将IE8作为一项硬性要求.我们希望使用Traceur开始使用ES6的一些改进语法,但我知道它会产生ES5,而IE8不支持它.鉴于我可以修补IE8与es5shim,这Traceur支持ES6功能使用是安全的?

更具体地说,我想知道哪些特征映射总是直接映射到完全兼容的代码(可能是糖的大部分),由于垫片的限制而导致行为不匹配,并且完全不可用

javascript cross-browser internet-explorer-8 traceur

9
推荐指数
1
解决办法
1585
查看次数

JavaScript ES6模块+ traceur

我正在使用ES6模块转换为带有traceur的 ES5 .
通过grunt + grunt-traceur进行脱毛

Traceur允许您选择要使用的模块处理程序:它自己的,AMD,commonJS或内联.
我尝试了大部分,但似乎没有一个工作.为什么?

TestClass.js

export default class TestClass {
    constructor() {
        alert('test');
    }
}
Run Code Online (Sandbox Code Playgroud)

Main.js

import TestClass from './TestClass';

var test = new TestClass();
Run Code Online (Sandbox Code Playgroud)

Gruntfile.js(摘录)

traceur: {
    options: {
        experimental: true,
        blockBinding: true,
        modules: 'amd'
    }
}
Run Code Online (Sandbox Code Playgroud)

index.html(提取)

<script src="js/vendor/traceur-runtime.js"></script>
<script src="js/vendor/require.js"></script>

<script defer async src="js/compiled/Main.js"></script>
Run Code Online (Sandbox Code Playgroud)

给出错误

未捕获的错误:匿名的define()模块不匹配:函数($ __ 0){

似乎grunt插件存在问题,但即使使用旧版本似乎也没有帮助.

代码改编自一篇文章.

javascript ecmascript-6 traceur

8
推荐指数
1
解决办法
1554
查看次数

React和ES6继承

注意:此帖已在React不支持ES6(v12)时发布.

我有一个ES6课程:

class BaseClass {
  getInitialState(){
      return {message: 'Hello!'};
  }

  render() {
      return (
            <div>
                <div>{this.state.message}</div>
            </div>
        )
  }
}
Run Code Online (Sandbox Code Playgroud)

我可以使用这个表达式在ES6中导出(来源:反应ES6 browserify)

export default React.createClass(BaseClass.prototype)
Run Code Online (Sandbox Code Playgroud)

这很好用.现在我想使用ES6继承来扩展我的BaseClass类:

class ExtendedClass extends BaseClass{
    getInitialState(){
        return {message: "Hello! I'm an extension"};
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我React.createClassExtendedClass课堂上打电话时,我得到以下异常:

Invariant Violation: ReactCompositeComponentInterface: You are attempting to define `constructor` on your component more than once. This conflict may be due to a mixin.
Run Code Online (Sandbox Code Playgroud)

我知道React 0.13应该更符合ES6,但有没有办法解决这个问题?

编辑:

我正在使用Traceur来编译我的ES6类.输出ExtendedClass看起来像:

function ExtendedClass() …
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 reactjs traceur

7
推荐指数
2
解决办法
3504
查看次数

是否可以使用直接从页面使用Traceur的源地图?

我有一个用ES6编写的小型静态项目.每次重新加载时都会动态编译Traceur(用于开发目的):

<script src="lib/traceur/traceur.js" type="text/javascript"></script>
<script src="lib/traceur/bootstrap.js" type="text/javascript"></script>  

<script>
  traceur.options.experimental = true;
  traceur.options.sourceMaps = true;
</script>

<!-- my ES6 code goes here -->
<script type="module" src="main.js"></script>
Run Code Online (Sandbox Code Playgroud)

内容bootstrap.js很简单:

new traceur.WebPageTranscoder(document.location.href).run();
Run Code Online (Sandbox Code Playgroud)

现在,我无法使源地图起作用(Chrome 34).该手册建议该文件应该离线编译并提供适当的标题,但这正是我试图避免的.

有没有办法让源映射完全从客户端工作?

javascript traceur

6
推荐指数
1
解决办法
482
查看次数

如何为浏览器编译ES5代码到ES5?

我已经使用npm安装了traceur并且设法编译了一个简单的ES6脚本.我的问题是生成的代码特定于node.js

我知道traceur可以从浏览器运行,但我想进一步优化.有没有办法从命令行(节点)运行traceur,方式与lesscss的工作方式类似?

javascript node.js ecmascript-5 ecmascript-6 traceur

5
推荐指数
1
解决办法
1356
查看次数

Javascript ES6 消除了类中各处“this”关键字的使用

我现在正在使用 Traceur 来编写一些未来的 javascript,这是我在某个课程中拥有的函数

create() {
    this.game.physics.startSystem(Phaser.Physics.ARCADE);

    this.segmentcache = new SegmentCache(this.game);
    this.segments = new Segments(this.game);
    this.segments.cache = this.segmentcache;
    this.segments.seek(3);

    this.guy = new Guy(this.game, 140 + 8, 80);
    this.guy.anchor.set(0.5, 1.0);
    this.game.add.existing(this.guy);

    this.game.camera.x = 100;
    this.ticks = 0;
    this.cross = 0;
}
Run Code Online (Sandbox Code Playgroud)

当然,与任何传统的 JavaScript 代码一样,它到处都被 this 关键字覆盖。来自 Java 等,当我引用类内部的字段时,当我不需要指定这个字段时,对我来说这是非常不自然的。

有什么方法可以让 Traceur 像 Java 一样解释类吗?(即在未指定时自动插入此内容等)

javascript ecmascript-6 traceur

5
推荐指数
1
解决办法
3167
查看次数

是否可以将 jQuery 转译为 Vanilla JS?

我使用 Traceur / babel 将 ES6 转换为 ES5,但是是否可以使用 gulp 插件将 jQuery 转换为纯 JavaScript?感谢您的回答:)

javascript jquery gulp traceur babeljs

5
推荐指数
1
解决办法
6023
查看次数

es6 import var未在代码导入中定义

出于某种原因,当我做var sphere = new Core(); 在游戏中,我看到Core未定义,即使我导入它:

Game.js

  import Core from 'gameUnits/Core' 

    export class Game { 
    constructor() {
Run Code Online (Sandbox Code Playgroud)

Core.js:

export class Core {
    constructor(scene) {
    }
}
Run Code Online (Sandbox Code Playgroud)

ecmascript-6 traceur

4
推荐指数
1
解决办法
3431
查看次数

jspm不会将代码从ES6转换为ES5

运行jspm bundle-sfx some/input some/output.js不会将我的代码从ES6转换为ES5.这使输出文件不可用.

输入文件的示例内容:

[1,2,3,4].map((i)=>i*i);
Run Code Online (Sandbox Code Playgroud)

ecmascript-6 traceur jspm babeljs

4
推荐指数
1
解决办法
949
查看次数

使用TypeScript和Traceur有什么好处?

您可以配置TypeScript以输出ES5或ES6.只要您想在不本身支持ES6的平台上运行应用程序,就必须使用Traceur等编译器(包括Traceur运行时库)将ES6编译为ES5.

这样做有什么好处而不是简单地告诉TypeScript输出ES5?(我不认为该应用程序将永远只针对本机ES6平台)

据我所知,你不能在TypeScript(1.5)中编写一个无法在ES5上运行的程序(假设程序编译并包含正确的库).我错了吗?

compilation typescript ecmascript-6 traceur

2
推荐指数
1
解决办法
416
查看次数