`rollup.config.js` 是 Rollup 的配置文件,所有关于打包的配置都在此进行。下面是 `rollup.confing.js` 的详解:
```javascript
import babel from '@rollup/plugin-babel';
import { terser } from 'rollup-plugin-terser';
export default {
input: 'src/main.js', // 入口文件
output: [
{
file: 'dist/main.js', // 输出文件地址
format: 'umd', // 输出格式,支持 'amd', 'cjs', 'es', 'iife' 或 'umd'
name: 'myModule', // 当输出格式为 'umd' 或 'iife' 时,对应的全局变量名
plugins: [
terser(), // 代码压缩插件
],
},
],
plugins: [
babel({ // babel 转换插件
exclude: 'node_modules/**',
}),
],
};
```
可以看到,`rollup.config.js` 主要包含以下几部分:
1. `input`:入口文件地址,默认为 `src/index.js`。
2. `output`:输出文件目录及文件名、格式、全局名称等信息。
3. `plugins`: 插件列表,用于打包时的代码转换、压缩等操作。
常用 Plugin 列举如下:
- [@rollup/plugin-commonjs](https://github.com/rollup/plugins/tree/master/packages/commonjs):将 CommonJS 模块转换为 ES6 模块。
- [@rollup/plugin-node-resolve](https://github.com/rollup/plugins/tree/master/packages/node-resolve):帮助 Rollup 查找⽂件,以便打包 node_modules 中的第三⽅库。
- [@rollup/plugin-babel](https://github.com/rollup/plugins/tree/master/packages/babel):将新版本 JavaScript 转换为 ES5 以兼容所有浏览器。
- [rollup-plugin-terser](https://github.com/TrySound/rollup-plugin-terser):JavaScript 压缩插件。
`rollup.config.js` 还有很多配置项,如 `external`、`watch`、`strictDeprecations` 等,大家可以根据需求自行添加或修改。