npm 包 rollup 使用教程

阅读时长 5 分钟读完

Rollup 是一个 JavaScript 模块打包器,它专门用于创建基于 ES6 模块的库和应用程序。与其他打包器相比,它的主要优点在于能够生成更小、更快的代码。

本文将介绍如何使用 npm 包 Rollup 进行 JavaScript 应用程序和库的打包,并提供详细的示例代码和指导意义。

安装

首先,你需要安装 Node.js 和 npm,然后可以运行以下命令来安装 Rollup:

配置文件

Rollup 使用配置文件来指定输入文件、输出文件以及其他选项。创建一个名为 rollup.config.js 的文件,并添加以下内容:

这个配置文件告诉 Rollup 使用 src/index.js 作为入口点,并将打包后的代码输出到 dist/bundle.js 文件中。我们还指定了输出格式为 UMD,并指定了库的名称为 MyLibrary

插件

Rollup 具有丰富的插件生态系统,你可以使用这些插件来处理各种任务,例如压缩代码、转换 TypeScript 等等。以下是一些常用的插件:

@rollup/plugin-commonjs

该插件使 Rollup 能够识别和打包 CommonJS 模块。安装方式:

添加到 rollup.config.js 文件的 plugins 属性中:

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

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

@rollup/plugin-node-resolve

该插件使 Rollup 能够从 node_modules 目录中导入第三方模块。安装方式:

添加到 rollup.config.js 文件的 plugins 属性中:

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

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

rollup-plugin-terser

该插件用于压缩代码。安装方式:

添加到 rollup.config.js 文件的 plugins 属性中:

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

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

示例代码

下面是一个使用 Rollup 打包的基本示例。假设你正在创建一个名为 MyLibrary 的 JavaScript 库,其中包含一个名为 add 的函数:

运行以下命令进行打包:

生成的 dist/bundle.js 文件内容如下:

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

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

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

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

- ----------------------------------------------------------- --------
----------------------------------------------------------------------------------
纠错
反馈