Rollup is a module bundler for JavaScript which compiles small pieces of code into something larger and more complex, such as a library or application
참조 : https://rollupjs.org/guide/en/
npm install --global rollup
npm i -g rollup
export default {
input: './src/main.js',
output: {
file: './build/bundle.min.js',
format: 'iife',
name: 'bundle'
},
plugins: [],
}
- input : 파일을 읽어들이는 시작점
- output : 롤업 번들링 결과물의 위치 및 파일명 지정
export default [
{
input: 'main-a.js',
output: {
file: 'dist/bundle-a.js',
format: 'cjs'
}
},
{
input: 'main-b.js',
output: [
{
file: 'dist/bundle-b1.js',
format: 'cjs'
},
{
file: 'dist/bundle-b2.js',
format: 'esm'
}
]
}
];
// 이런식으로도 작성 및 사용이 가능하다
file : 결과물 파일명과 경로 지정 (dir 속성을 사용해도 됩니다 경로는)
format : 출력형식(cjs, esm, iife, amd 등) -> 특정형식으로 번들링을 합니다
name : iife/umd 형식으로 번들시 필수값이며, 전역변수 이름입니다.
export default {
...,
input: {
a: 'src/main-a.js',
'b/index': 'src/main-b.js'
},
output: {
...,
entryFileNames: 'entry-[name].js'
}
};
// [name], [hash], [format]
// webpack 처럼 이름을 설정할 수 있습니다.
// 위에는 entry-a.js 가 생성됩니다.
- plugins : 롤업 플러그인은 웹팩에 로더와 비슷한 역할을 합니다. (번들로 결과물을 생성하기전에 어떤 부가적인 작업을 처리해줍니다)
// 해당 플러그인들을 npm i 했다고 가정합시다.
import babel from 'rollup-plugin-babel';
import resolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
import postcss from 'rollup-plugin-postcss';
import { uglify } from 'rollup-plugin-uglify';
export default {
input: './src/main.js',
output: {
file: './build/bundle.min.js',
format: 'iife',
name: 'bundle',
},
plugins: [
babel({
exclude: 'node_modules/**'
}),
postcss({
extensions: ['.css']
}),
resolve(),
commonjs(),
uglify()
]
}
플러그인의 사용법이 은근히 간단합니다.
참조 : https://devhints.io/rollup
참조 : https://dev.to/proticm/how-to-setup-rollup-config-45mk
참조 : https://devinduct.com/cheatsheet/15/rollup