【问题标题】:How do I set default options for traceur.compile and traceur.require?如何为 traceur.compile 和 traceur.require 设置默认选项?
【发布时间】:2014-07-08 05:17:07
【问题描述】:

使用官方traceur module,是否可以设置compilerequire的默认选项?

例如,此代码有效:

var traceur = require('traceur');
console.log(
    traceur.compile('{ let x = 1; }', { experimental:true }).js
);

现在,如果我删除 traceur.compile 的第二个参数(选项对象):

console.log(
    traceur.compile('{ let x = 1; }').js
);

由于blockBinding 选项未启用,Traceur 将抛出错误。有没有办法改变默认选项,以便在不总是传递选项对象的情况下编译文件?

除了应用 DRY 原则之外,我主要关心的是让 traceur.require 函数来编译带有自定义选项的文件——据我所知,traceur.requiretraceur.require.makeDefault() 甚至不使用 @987654333 @参数。

例如,考虑以下代码示例:

require('traceur').require('./index');

还有这段代码:

require('traceur').require.makeDefault();
require('./index');

有没有办法在启用experimental 选项的情况下编译所需的文件?
最好通过更改默认选项,因为我看不到任何其他可行的方式。

使用节点 0.10.29 和 Traceur 0.0.49。


这是我想要实现的完整示例。

bootstrap.js(入口点):

var traceur = require('traceur');
traceur.options.experimental = true;
traceur.require.makeDefault();
require('./index');

index.js:

import {x} from './lib';

// using a block binding in order to check
// whether this file was compiled with experimental features enabled
{
    let y = x;
    console.log(y);
}

lib.js:

export var x = (() => { 
    if (true) {
        // should be compiled with experimental features enabled too
        let x = 1;
        return x;
    }
})();

预期的控制台输出:1

traceur.options.experimental=true 用作启用 traceur.options 对象中的实验功能的设置器,但不幸的是,据我所知,traceur.options 似乎不会影响traceur.compiletraceur.require


Using Traceur with Node.js Wiki 页面没有提及任何关于编译选项的内容。 Options for Compiling 页面没有提到 Node.js 中的 Traceur API,实际上我找不到任何关于 Node.js 中的 Traceur API 的文档。

【问题讨论】:

    标签: node.js ecmascript-6 traceur


    【解决方案1】:

    Fabrício Matté ;-) 添加了对为 makeDefault() 提供默认选项的支持,请参阅 https://github.com/google/traceur-compiler/blob/master/src/node/require.js#L58

    2014 年 7 月 16 日,experimental 选项的一个单独错误已修复。

    【讨论】:

    • 感谢您提醒我这个问题并发布答案,我最近比较忙,几乎忘记了这个问题。欢迎来到 Stack Overflow 顺便说一句。 =]
    猜你喜欢
    • 2012-11-16
    • 1970-01-01
    • 2020-02-08
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多