推荐答案
Rollup 的配置选项主要包括以下几类:
核心选项:
input
:指定入口文件路径。output
:配置输出文件的选项,如file
、format
、name
等。plugins
:配置使用的插件数组。external
:指定外部依赖,不打包进输出文件。watch
:配置监听文件变化的选项。
输出选项:
file
:输出文件的路径。format
:输出模块的格式,如es
、cjs
、iife
、umd
等。name
:当输出格式为iife
或umd
时,指定全局变量的名称。globals
:配置外部依赖的全局变量名称。sourcemap
:是否生成 sourcemap 文件。
插件选项:
resolve
:解析模块路径的插件。commonjs
:将 CommonJS 模块转换为 ES6 模块的插件。babel
:使用 Babel 进行代码转换的插件。terser
:用于代码压缩的插件。
高级选项:
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
:当输出格式为iife
或umd
时,这个选项用于指定全局变量的名称。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 的打包行为,满足不同的项目需求。