---
tags: 前端工具
---
【筆記】 Rollup
===
```
rollup -c
```
- rollup.config.js
```javascript=
import alias from '@rollup/plugin-alias'
import multi from '@rollup/plugin-multi-entry'
import { nodeResolve } from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';
export default {
input: [
'src/test2/**/*.js',
'src/test/**/*.js'
],
output: [{
file: __dirname + '/xxxxxx.js',
}],
plugins: [
nodeResolve(),
commonjs(),
multi(),
alias({
entries: [
{ find: '@src', replacement: __dirname + '/src' },
]
})
]
};
```
- 套件
- @rollup/plugin-alias: 使用別名
- @rollup/plugin-multi-entry: 多個進入點
- 多個output
```javascript=
const arry = [
'configs',
'helper'
]
export default arry.map((name)=> ({
input: `src/${name}/index.js`,
output: {
file: __dirname + `/${name}.js`,
},
plugins: [
alias({
entries: [
{ find: '@', replacement: __dirname + '/src' },
]
})
]
}))
```
```javascript=
const arry = [
{
folderName: 'aaa',
files: [
'index',
]
},
{
folderName: 'bbb',
files: [
'xxx',
'yyy',
'zzz',
]
},
...
]
let a = []
arry.forEach(folder => {
const folderName = folder.folderName
folder.files.forEach(fileName => {
a.push({
folder: folderName,
fileName: fileName
})
})
})
export default a.map(
(item) => (
{
input: `src/${item.folder}/${item.fileName}.js`,
output: {
file: `dist/${item.folder}/${item.fileName}.js`,
},
plugins: [
nodeResolve(),
commonjs(),
json(),
alias({
entries: [
{ find: '@root', replacement: __dirname},
{ find: '@', replacement: __dirname + '/src' },
]
})
]
}
)
)
```