使用官方traceur module,是否可以设置compile
和require
的默认选项?
例如,此代码有效:
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.require
和traceur.require.makeDefault()
甚至没有采用options
论证。
例如,考虑此代码示例:
require('traceur').require('./index');
这段代码:
require('traceur').require.makeDefault();
require('./index');
有没有办法在启用experimental
选项的情况下编译所需的文件?
最好通过改变默认选项,因为我看不到任何其他可行的方式。
使用Node 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.compile
或traceur.require
我可以看到。
Using Traceur with Node.js Wiki页面没有提及有关编译选项的任何内容。 Options for Compiling页面未提及Node.js中的Traceur API,事实上,我在Node.js中找不到有关Traceur API的任何文档。
答案 0 :(得分:3)
FabrícioMatté;-)添加了对makeDefault()的默认选项的支持,请参阅 https://github.com/google/traceur-compiler/blob/master/src/node/require.js#L58
选项experimental
的单独错误已于今天,16日至14日修复。