推荐答案
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 的打包行为,满足不同的项目需求。