这"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