使用官方的traceur 模块,是否可以为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
);
Traceur 将抛出错误,因为该blockBinding
选项未启用。有什么方法可以更改默认选项,以便在不总是传递选项对象的情况下编译文件?
除了应用 DRY 原则之外,我主要关心的是获得traceur.require
使用自定义选项编译文件的函数——据我所见,traceur.require
甚至traceur.require.makeDefault()
不接受options
参数。
例如,考虑这个代码示例:
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.compile
。traceur.require
Using Traceur with Node.js Wiki 页面没有提到任何关于编译选项的内容。编译选项页面没有提到 Node.js 中的Traceur API,事实上,我找不到任何关于 Node.js 中的 Traceur API 的文档。