npm 包 @rollup/pluginutils 使用教程

阅读时长 4 分钟读完

前言

@rollup/pluginutils 是 Rollup 生态系统中的一个常用工具库。它提供了许多实用的函数和工具,用于开发 Rollup 插件时的一些常见操作,比如 AST 分析、路径处理、代码生成等等。在本文中,我们将详细介绍如何使用 @rollup/pluginutils 进行插件开发。

安装

要使用 @rollup/pluginutils,我们需要首先从 npm 上安装它。可以使用以下命令:

使用方法

我们将介绍 @rollup/pluginutils 的一些常用函数和工具。

createFilter

createFilter 函数可以用于生成一个过滤器函数,它能够根据指定的文件匹配模式和 include/exclude 规则过滤出要处理的文件。使用方式如下:

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

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

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

--------------------------- -- ----------------
展开代码

createFilter 函数接收两个参数,第一个参数是文件匹配模式数组,第二个参数是 include/exclude 规则数组。文件匹配模式数组用于指定要处理的文件类型,比如 ['**/*.js'] 表示所有的 .js 文件,['**/*.ts', '**/*.tsx'] 表示 TypeScript 文件。include/exclude 规则用于指定要排除的文件,比如 ['node_modules/**'] 表示排除 node_modules 目录中所有文件。createFilter 函数会返回一个过滤器函数,它能够根据以上规则过滤出要处理的文件。

addSideEffect

addSideEffect 函数用于添加一个副作用,这通常用于标记一个模块对其他模块的影响,比如 CSS 模块的副作用。使用方式如下:

以上代码中,我们通过 addSideEffect 函数添加了一个 foo.css 的副作用,这会告诉 Rollup,foo.js 模块会对 foo.css 模块产生影响。

attachScopes

attachScopes 函数用于给 AST 节点添加作用域信息,这对于一些代码转换操作非常有用,比如变量替换、取反等。使用方式如下:

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

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

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

-- -- --- --------------
展开代码

以上代码中,我们使用 acorn 解析了一段代码,然后通过 attachScopes 函数为 AST 绑定作用域信息,接着我们就可以对 AST 进行变量替换、取反等操作。

makeLegalIdentifier

makeLegalIdentifier 函数用于将一个字符串转换为合法的变量名,这在一些代码生成操作中非常有用。使用方式如下:

以上代码中,我们使用 makeLegalIdentifier 函数将字符串 'foo-bar' 转换为合法的变量名 'foo_bar'。如果传入的字符串不合法,makeLegalIdentifier 函数会自动转换成合法的字符串。

结语

@rollup/pluginutils 是一个非常实用的工具库,它能够大大简化 Rollup 插件开发的难度。在本文中,我们介绍了它的一些常用函数和工具,希望对大家有所帮助。

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