【问题标题】:babel 7 - how to prevent adding of "strict mode" [duplicate]babel 7 - 如何防止添加“严格模式”[重复]
【发布时间】: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 模块(使用 importexport)将违反规范。
  • 我不使用 commonjs 或模块

标签: babeljs


【解决方案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”预设选项中以防止它附加“使用严格”到文件的顶部。基本上像这样stackoverflow.com/a/39225403/1825352,除了我使用“env”而不是“es2015”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-20
  • 2012-06-01
  • 1970-01-01
  • 2015-03-02
  • 2022-10-19
  • 2020-06-13
相关资源
最近更新 更多