npm 包 tersify 使用教程

阅读时长 8 分钟读完

前言

在前端开发中,我们经常需要使用 JavaScript 的压缩工具来减少代码文件的体积,并优化网页的加载速度。在这个问题上,一个非常流行的选项就是使用 terser。terser 是一个轻量级的并高效的 JavaScript 压缩器和混淆器,但是它也不是完美的。有时候,我们需要一些更具有自定义性的解决方案,尤其是在一些特定的情况下,例如对于需要加密的敏感信息等场景。在这个问题上,就可以考虑使用 tersify

tersify 是一个简单且易于使用的 npm 包,它基于 terser,并提供了更多的自定义选项和功能,让我们更加方便地实现我们所需要的效果。在本文中,我们将一步步地教你如何使用 tersify 中的各种功能,以及如何将其集成到你的项目中。

安装 tersify

在开始之前,我们需要先安装 tersify。你可以在命令行中通过 npm 来完成安装。只需要打开你的终端,输入以下命令即可:

这个命令将会安装 tersify 并添加它到你的项目中。

使用 tersify

在你使用 tersify 之前,你需要先创建一个 JavaScript 文件,例如 index.js,并将其导入到你的项目中。

现在,我们将开始使用 tersify 来压缩这个文件。你可以使用以下命令来实现:

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

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

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

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

上述代码的作用如下:

  • 第一行:导入了 tersify,以便我们使用它的各种功能。
  • 第三行:创建了一个 tersify 实例 tersifier,并指定了一些配置选项。
  • 第五行:定义了一个名为 code 的 JavaScript 代码字符串,本例中是我们要压缩的 index.js
  • 第七行:使用 tersify 实例的 tersify() 方法来压缩 code 中的 JavaScript 代码,并将压缩后的结果打印到控制台。

在上面的代码中,我们使用了 compressmangle 这两个配置选项来压缩变量名和函数名,并使用 output 中的 comments 属性来禁止生成注释。当然,这只是 tersify 配置选项的冰山一角。在接下来的章节中,我们将深入了解 tersify 的各种功能和选项。

tersify 常用配置选项

以下是 tersify 的常用配置选项列表:

  • compress: 指定是否压缩代码。
    • 类型:boolean。
    • 默认值:true。
  • mangle: 指定是否压缩函数名和变量名。
    • 类型:boolean。
    • 默认值:true。
  • output.comments: 指定是否生成注释。
    • 类型:boolean|'all'|'some'|Function。
    • 默认值:true。
  • output.indent_level: 指定缩进级别。
    • 类型:number。
    • 默认值:4。
  • output.max_line_len: 指定行的最大长度。
    • 类型:number。
    • 默认值:32000。
  • output.preserve_line: 指定是否保留原始代码中的换行符。
    • 类型:boolean。
    • 默认值:false。

接下来,我们将详细介绍每一个配置选项。

compress

compress 选项用于指定是否压缩代码,例如将它们转换为更短的变量名和函数名。如果你想要压缩代码,只需要将它设置为 true。否则,将它设置为 false。默认值是 true。

mangle

mangle 选项用于指定是否压缩函数名和变量名。同样的,如果你想要压缩它们,请将 mangle 设置为 true。否则,将它设置为 false。默认值是 true。

output.comments

output.comments 选项用于指定是否生成注释。可以将它设置为一个布尔值或一个函数。默认为 true。

如果将 output.comments 设置为 false,则 tersify 将从结果中删除所有注释。

output.indent_level

output.indent_level 选项用于指定缩进级别。默认值为 4。

output.max_line_len

output.max_line_len 选项用于指定行的最大长度。默认为 32000。

output.preserve_line

output.preserve_line 选项用于指定是否保留原始代码中的换行符。默认为 false。

示例

在本节中,我们将了解如何使用 tersify 来加密存储在 JavaScript 文件中的敏感数据。假设我们有一个名为 config.js 的文件,该文件包含 API 密钥等敏感信息。我们需要加密这些信息,以确保不被黑客攻击者获取。

首先,我们需要将 config.js 导入我们的 Node.js 应用程序,然后使用 tersify 将其加密。以下是完整的示例代码:

config.js 中添加以下内容:

app.js 中添加以下内容:

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

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

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

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

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

在上述代码中,我们创建了一个新的 tersify 实例,并将其作为 tersifier。接着,我们指定了一些选项,其中 mangle 属性可以帮助我们忽略所有以下划线 _ 开头的属性名,以保护它们不会被加密。output.comments 设置为 false,以删除掉所有的注释。最后,我们将 ${JSON.stringify(config)} 的代码字符串赋值给 code,并使用 tersify 实例的 tersify() 方法将其加密。加密后的内容将写入名为 config.min.js 的新文件中。

至此,我们已经成功将敏感数据加密了。将加密后的文件 config.min.js 应用于项目即可。

总结

在本文中,我们详细介绍了如何使用 npm 包 tersify 来压缩和加密 JavaScript 代码。我们了解了 tersify 的各种配置选项和功能,并深入探讨了如何使用它来保护存储在 JavaScript 文件中的敏感信息。希望这篇指南可以帮助你更好地理解 tersify,并帮助你在前端开发中实现更多自定义化的需求。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f026857403f2923b035bd38

纠错
反馈