Babel预设es2015松动不起作用?

时间:2017-07-16 04:49:55

标签: babeljs

"loose": true不适用于"es2015" preset或我的错误/误解吗?

输入代码

我已尝试使用REPL并在命令行上启用。我无法通过 looseWith.js 翻译松散的javascript:

var obj = {};
with (obj) {
}

.babelrc (attempt1):

{
    "presets": [
        [ "es2015", { "loose": true }]
    ]
}

.babelrc (attempt2 - 与REPL中一样):

{
    "presets": [
        "es2015-loose"
    ]
}

然后我尝试运行这些.babelrc中的任何一个:

> babel looseWith.js 
SyntaxError: looseWith.js: 'with' in strict mode (2:0)
  1 | var obj = {};
> 2 | with (obj) {
    | ^
  3 | }

我觉得这仍处于严格模式。 documentation on loose非常稀缺,只是说:

  

启用"松散"此预设中允许它们的任何插件的转换。

我试图否定use strict :-)这是我的误解吗?还有什么其他含义"松散"?

然后我尝试将"modules": "umd"添加到.babelrc以尝试上面的内容,并且当使用适当的严格.js文件时,它确实产生了umd输出,所以我认为babel正在提升{{1模块就好了。

背景

我试图在我的下划线/ lodash模板中使用ES6。例如,javascript输出.babelrc包含" with"声明(默认情况下)。因此,我尝试使用babel来翻译ES6 - 包括"和#34;声明 - 进入ES5。

环境

_.template(script).source

0 个答案:

没有答案