esbuild - An extremely fast bundler for the web
# 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 -v
10.2.1
# 최신 버전 npm 으로 업그레이드
➜ npm i [email protected] -g
# npm 버전 다시 확인
➜ npm -v
10.2.1
# pnpm 설치 확인 및 버전 확인
➜ pnpm -v
8.10.0
# 최신 버전 pnpm 으로 업그레이드
➜ npm i [email protected] -g
# pnpm 설치 다시 확인 및 버전 다시 확인
➜ pnpm -v
8.10.0
➜ mkdir esbuild-example
➜ cd esbuild-example
➜ corepack enable
➜ pnpm init
➜ corepack use [email protected]
➜ code .
# esbuild-example
packages:
- "packages/*"
➜ mkdir packages packages/my-utils
➜ cd packages/my-utils
➜ pnpm init
➜ cd ...
➜ pnpm --filter my-utils add esbuild typescript -D
// esbuild-example/packages/my-utils/src/plus.ts
export function plusOne(x: number): number {
return x + 1;
}
export function plusTwo(x: number): number {
return x + 2;
}
// esbuild-example/packages/my-utils/src/index.ts
import * as plus from "./plus";
const plusOne = plus.plusOne;
export { plusOne };
require("esbuild").build({
entryPoints: ["src/index.ts"],
outfile: "dist/index.js",
bundle: true,
platform: "node",
});
{
"name": "my-utils",
"version": "1.0.0",
"description": "",
"main": "dist/index.js",
"scripts": {
"build": "node build.js",
"test": "echo \\"Error: no test specified\\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"esbuild": "^0.19.5",
"typescript": "^5.2.2"
}
}
➜ pnpm --filter my-utils build
require("esbuild").build({
entryPoints: ["src/index.ts"],
outfile: "dist/index.js",
bundle: true,
// treeShaking: false,
platform: "node",
});
➜ pnpm --filter my-utils build