使用 Babel 时如何避免 “use strict” 警告

"use strict" 是 ECMAScript 5 中引入的一项严格模式,它强制执行更精确的 JavaScript 语法规则,从而减少一些常见的错误和不安全的代码行为。但当我们使用 Babel 进行代码转换时,有时会遇到 "use strict" 警告,可能是因为我们已经明确指定了 "use strict",而 Babel 又一次添加了它。那么如何避免这种警告呢?本文将会进行详细解答。

正确使用 Babel

在深入讨论如何规避 "use strict" 警告之前,我们需要明确一个问题:正确使用 Babel 对于规避 "use strict" 警告非常重要。在 Babel 的官方文档中,它被定义为:

Babel 是一个 JavaScript 编译器,用于将 ECMAScript 2015+ 代码转换为向后兼容的 JavaScript 版本。

因此,我们需要了解 Babel 的转换机制,确定我们所使用的插件、预设和配置正确无误,以避免任何额外的 "use strict" 添加。

避免 "use strict" 警告的方法

方法1:移除预设中的 "use strict"

通常来说,为了保证转换后的代码的正确性和规范性,Babel 预设中会默认添加 "use strict"。如果我们要避免 "use strict" 警告,可以通过移除预设中的 "use strict" 的方式来实现。例如,当我们安装了 babel-preset-env,可以在 .babelrc 文件中进行如下配置:

-
  ---------- -
    -
      --------------------
      -
        -------- -----
        -------------- --------
        --------- --
        ---------- -
          ----- ---
        -
      -
    -
  -
-

我们可以将该配置项修改为如下方法进行配置:

-
  ---------- -
    -
      --------------------
      -
        -------- -----
        -------------- --------
        --------- --
        ---------- -
          ----- ---
        --
        ------------- ----- -- ------- ---- -------
      -
    -
  -
-

这样我们就成功地避免了 Babel 预设中的 "use strict" 添加。同样地,如果我们使用的是其他预设或插件,也可能会存在类似的问题,需要按照相同的方法来解决。

方法2:手动添加 "use strict" 并且使其生效

另一种避免 "use strict" 警告的方法是,在我们的代码中手动添加 "use strict" 并且使其生效。"use strict" 可以在全局或局部范围内使用,当我们希望它作用于全局范围时,我们只需要将其加在代码最顶部即可。例如:

---- -------- 

-- ----

如果我们希望 "use strict" 仅作用在局部范围内(如函数内部),可以按照如下方式添加:

-------- ----- -
  ---- -------- 

  -- ----
-

由于 "use strict" 对于在代码中使用严格模式非常重要,我们建议始终在使用 Babel 进行转换的同时也手动添加 "use strict"。

示例代码

-- --- ---- ------- ---
--- - - -- 
--- - - -- 
--- - - - - -- 

-- ---- ---- ------- ---
---- -------- 
--- - - -- 
--- - - -- 
--- - - - - --

-- ----- ---- ------- ---
-
  ---------- -
    -
      --------------------
      -
        -------- -----
        -------------- --------
        --------- --
        ---------- -
          ----- ---
        --
        ------------- -----
      -
    -
  -
-

结论

Babel 是一个十分重要的工具,但是我们要避免因为配置失误而引起的 "use strict" 警告。正确使用 Babel 并且移除插件中的 "use strict" 可以帮助我们更好地实现代码转化。手动添加 "use strict" 的话,其可以在全局或局部范围内设置,我们建议不仅应该考虑不生成警告的功能,也应该注意代码的正确性和可维护性。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6736be5a0bc820c582562140