返回

rollup 打包自己的 js 库

前端

前言

随着前端工程的日益复杂,代码模块化已经成为一种必不可少的开发模式。通过将代码拆分成更小的模块,我们可以提高代码的可维护性和复用性。然而,模块化也带来了一个问题:如何将这些模块打包成一个可供浏览器或其他环境使用的单个文件?

这里就需要用到打包工具了。市面上有很多打包工具可供选择,比如 webpack、parcel、rollup 等。每种工具都有自己的特点和优缺点。本文将介绍如何使用 rollup 来打包自己的 js 库。

什么是 rollup

rollup 是一个利用 es6 原生的模块机制进行打包构建的工具。它更着眼于未来,对 commonjs 模块机制不提供内置的支持。rollup 的核心思想是将代码中的所有依赖关系梳理成一个有向无环图(DAG),然后根据这个图进行打包。

与 webpack 相比,rollup 的一个显著特点是它的按需加载。在 webpack 中,所有模块都被打包到一个文件中,而在 rollup 中,只有在需要的时候才会加载模块。这使得 rollup 的打包速度更快,也更适合构建库。

安装 rollup

要安装 rollup,可以使用 npm 命令:

npm install rollup -g

安装完成后,就可以使用 rollup 命令来打包代码了。

打包自己的 js 库

下面我们来一步步地打包自己的 js 库。

  1. 创建一个新的项目目录,并创建一个 package.json 文件。在 package.json 文件中,添加以下内容:
{
  "name": "my-lib",
  "version": "1.0.0",
  "main": "index.js"
}
  1. 创建一个 index.js 文件,这是我们的库的主入口文件。
// index.js
function sum(a, b) {
  return a + b;
}

function sub(a, b) {
  return a - b;
}

export {
  sum,
  sub
}
  1. 创建一个 rollup.config.js 文件,这是 rollup 的配置文件。
// rollup.config.js
import resolve from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';

export default {
  input: 'index.js',
  output: {
    file: 'bundle.js',
    format: 'iife'
  },
  plugins: [
    resolve(),
    commonjs()
  ]
};
  1. 运行 rollup 命令来打包代码:
rollup -c

执行完以上命令后,就会在当前目录生成一个 bundle.js 文件。这个文件就是我们打包好的 js 库。

使用 rollup 打包的注意事项

在使用 rollup 打包代码时,需要注意以下几点:

  1. rollup 不支持 commonjs 模块机制,因此需要使用插件来支持。
  2. rollup 的打包速度很快,但它不适合打包大型项目。
  3. rollup 的按需加载机制虽然可以提高打包速度,但也会增加代码的复杂性。

总结

rollup 是一个轻量级、高效的打包工具,它更适合打包 js 的库。通过本文的介绍,相信大家已经对 rollup 有了基本的了解。在实际开发中,可以根据自己的需求选择合适的打包工具。