Rollup 的配置选项有哪些?

推荐答案

Rollup 的配置选项主要包括以下几类:

  1. 核心选项

    • input:指定入口文件路径。
    • output:配置输出文件的选项,如 fileformatname 等。
    • plugins:配置使用的插件数组。
    • external:指定外部依赖,不打包进输出文件。
    • watch:配置监听文件变化的选项。
  2. 输出选项

    • file:输出文件的路径。
    • format:输出模块的格式,如 escjsiifeumd 等。
    • name:当输出格式为 iifeumd 时,指定全局变量的名称。
    • globals:配置外部依赖的全局变量名称。
    • sourcemap:是否生成 sourcemap 文件。
  3. 插件选项

    • resolve:解析模块路径的插件。
    • commonjs:将 CommonJS 模块转换为 ES6 模块的插件。
    • babel:使用 Babel 进行代码转换的插件。
    • terser:用于代码压缩的插件。
  4. 高级选项

    • treeshake:配置 Tree-shaking 的选项。
    • context:指定模块的上下文。
    • moduleContext:为特定模块指定上下文。
    • onwarn:自定义警告处理函数。

本题详细解读

核心选项

  • input:这是 Rollup 的入口文件路径,通常是一个 JavaScript 文件。Rollup 会从这个文件开始分析依赖关系并打包。

  • output:这个选项用于配置输出文件的路径、格式等。file 指定输出文件的路径,format 指定输出模块的格式,如 es(ES 模块)、cjs(CommonJS 模块)、iife(立即执行函数表达式)等。

  • plugins:Rollup 的插件系统非常强大,可以通过插件扩展 Rollup 的功能。常见的插件包括 resolve(解析模块路径)、commonjs(转换 CommonJS 模块)、babel(使用 Babel 进行代码转换)等。

  • external:这个选项用于指定哪些模块是外部依赖,不打包进输出文件。通常用于排除第三方库或 Node.js 内置模块。

  • watch:这个选项用于配置 Rollup 的监听模式,当文件发生变化时自动重新打包。

输出选项

  • file:指定输出文件的路径和名称。

  • format:指定输出模块的格式。常见的格式有:

    • es:ES 模块格式,适用于现代浏览器和 Node.js。
    • cjs:CommonJS 模块格式,适用于 Node.js。
    • iife:立即执行函数表达式,适用于浏览器环境。
    • umd:通用模块定义,适用于浏览器和 Node.js。
  • name:当输出格式为 iifeumd 时,这个选项用于指定全局变量的名称。

  • globals:这个选项用于配置外部依赖的全局变量名称。例如,如果你使用了 lodash,可以通过 globals 指定 lodash 的全局变量名。

  • sourcemap:这个选项用于控制是否生成 sourcemap 文件,方便调试。

插件选项

  • resolve:这个插件用于解析模块路径,确保 Rollup 能够正确找到依赖模块。

  • commonjs:这个插件用于将 CommonJS 模块转换为 ES6 模块,以便 Rollup 能够正确处理。

  • babel:这个插件用于使用 Babel 进行代码转换,通常用于将 ES6+ 代码转换为 ES5 代码。

  • terser:这个插件用于代码压缩,通常用于生产环境。

高级选项

  • treeshake:这个选项用于配置 Tree-shaking 的行为。Tree-shaking 是 Rollup 的一个重要特性,用于删除未使用的代码。

  • context:这个选项用于指定模块的上下文,通常用于避免全局变量污染。

  • moduleContext:这个选项用于为特定模块指定上下文,通常用于处理模块中的 this 指向问题。

  • onwarn:这个选项用于自定义警告处理函数,可以用于过滤或处理 Rollup 发出的警告。

通过合理配置这些选项,可以灵活地控制 Rollup 的打包行为,满足不同的项目需求。

纠错
反馈