Rollup
Node.js
# Node.js 버전 확인
➜ node -v
v20.9.0
# v20.9.0 가 설치되어 있지 않다면
➜ nvm install 20.9.0
# v20.9.0 를 사용하고 있지 않다면
➜ nvm use 20.9.0
# Node.js 버전 다시 확인
➜ node -v
v20.9.0
npm
# npm 버전 확인
➜ npm -v
10.2.1
# 최신 버전 npm 으로 업그레이드
➜ npm i [email protected] -g
# npm 버전 다시 확인
➜ npm -v
10.2.1
pnpm
# pnpm 설치 확인 및 버전 확인
➜ pnpm -v
8.10.0
# 최신 버전 pnpm 으로 업그레이드
➜ npm i [email protected] -g
# pnpm 설치 다시 확인 및 버전 다시 확인
➜ pnpm -v
8.10.0
프로젝트 생성
➜ mkdir rollup-example
➜ cd rollup-example
➜ pnpm init
➜ corepack use [email protected]
➜ pnpm add rollup -D
➜ code .
두개의 코드 조각 작성하기
// rollup-example/src/plusOne.js
const plusOne = (number) => number + 1;
export default plusOne;
// rollup-example/src/main.js
import plusOne from "./plusOne.js";
export default function main() {
console.log(plusOne(1));
}
번들링하기
// rollup-example/rollup.config.js
module.exports = {
input: "src/main.js",
output: {
file: "dist/bundle.js",
format: "cjs",
},
};
{
"name": "rollup-example",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"build": "rollup -c",
"test": "echo \\"Error: no test specified\\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"packageManager": "[email protected]+sha1.77d568bacf41eeefd6695a7087c1282433955b5c",
"devDependencies": {
"rollup": "^4.2.0"
}
}
➜ pnpm build
번들링 결과를 여러개의 모듈 시스템 방식으로 만들기
// rollup-example/rollup.config.js
module.exports = {
input: "src/main.js",
output: [
{
file: "dist/bundle.js",
format: "cjs", // commonjs
},
{
file: "dist/bundle.mjs",
format: "es", // esm, module
},
],
plugins: [],
};
➜ pnpm build
commonjs 방식으로 작성된 모듈을 import 문으로 가져오려면