【发布时间】:2014-07-08 05:17:07
【问题描述】:
使用官方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() 甚至不使用 @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.compile 或traceur.require。
Using Traceur with Node.js Wiki 页面没有提及任何关于编译选项的内容。 Options for Compiling 页面没有提到 Node.js 中的 Traceur API,实际上我找不到任何关于 Node.js 中的 Traceur API 的文档。
【问题讨论】:
标签: node.js ecmascript-6 traceur