babel 7 - 如何防止添加“严格模式”[重复]
Posted
技术标签:
【中文标题】babel 7 - 如何防止添加“严格模式”[重复]【英文标题】:babel 7 - how to prevent adding of "strict mode" [duplicate] 【发布时间】:2019-03-20 13:04:05 【问题描述】:我看了很多帖子,但仍然无法正常工作:(
我有.babelrc
"comments": false,
"presets": [
["@babel/env",
"targets":
"browsers": ["ios 7"]
],
["minify"]
]
我想告诉 babel 不要添加"use strict"
(任何地方)
这是怎么做到的?
【问题讨论】:
是 Babel 添加use strict
到你的 CommonJS 模块的问题吗?不将 use strict
添加到 ES 模块(使用 import
和 export
)将违反规范。
我不使用 commonjs 或模块
【参考方案1】:
Babel 默认假定被转换的文件是 ES 模块。既然你不是这种情况,你会想告诉它。您可以查看the docs for the "sourceType"
option,但本质上您想添加:
"sourceType": "script"
在你的 Babel 选项中。
【讨论】:
解释一下。它适用于我。 这有助于我在遇到不符合严格模式的代码时抛出错误。但是,现在它在我所有文件的顶部添加了“use strict”。知道如何阻止吗? @yts 考虑使用'unambiguous'
而不是'script'
。
@loganfsmyth 感谢您的建议,但这对我也不起作用。可能与我正在使用的 gulp-babel 版本有关。稍后我将不得不重新开始工作。
@loganfsmyth 看起来更改 sourceType 允许 babel (6) 读取我的非严格兼容代码,但我还必须将 modules: false
添加到“env”预设选项中以防止它附加“使用严格”到文件的顶部。基本上像这样***.com/a/39225403/1825352,除了我使用“env”而不是“es2015”以上是关于babel 7 - 如何防止添加“严格模式”[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Babel7.x完美解决严格模式报错:'caller', 'callee', and 'arguments' properties may not be
Babel 7 失败,单个插件说“检测到重复的插件/预设”。