提问人:Fabrício Matté 提问时间:7/8/2014 最后编辑:Fabrício Matté 更新时间:7/17/2014 访问量:1101
如何设置 traceur.compile 和 traceur.require 的默认选项?
How do I set default options for traceur.compile and traceur.require?
问:
使用官方的 traceur 模块,是否可以设置 和 的默认选项?compile
require
例如,以下代码的工作原理:
var traceur = require('traceur');
console.log(
traceur.compile('{ let x = 1; }', { experimental:true }).js
);
现在,如果我删除 的第二个参数(options 对象):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
使用 Node 0.10.29 和 Traceur 0.0.49。
这是我想要实现的目标的完整示例。
引导程序 .js (入口点):
var traceur = require('traceur');
traceur.options.experimental = true;
traceur.require.makeDefault();
require('./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
将 Traceur 与 Node.js 一起使用 Wiki 页面没有提到任何有关编译选项的内容。编译选项页面没有提到 Node.js 中的 Traceur API,实际上,我在 Node.js 中找不到任何关于 Traceur API 的文档。
答:
法布里西奥·马特 ;-)添加了对为 makeDefault() 提供默认选项的支持,请参阅 https://github.com/google/traceur-compiler/blob/master/src/node/require.js#L58
该选项的一个单独错误已于今天(16JUL14)修复。experimental
评论
=]
评论