← 홈

⌘K
🤖
Claude Code AI 도구
🤗
Hugging Face AI 도구
🦜
LangChain AI 도구
🧠
Keras AI 도구
🦙
Ollama AI 도구
🐍
Python 프로그래밍 언어
🟨
JavaScript 프로그래밍 언어
🔷
TypeScript 프로그래밍 언어
⚛️
React 프로그래밍 언어
🐹
Go 프로그래밍 언어
🦀
Rust 프로그래밍 언어
📊
MATLAB 프로그래밍 언어
🗄️
SQL 프로그래밍 언어
⚙️
C/C++ 프로그래밍 언어
Java 프로그래밍 언어
🟣
C# 프로그래밍 언어
🍎
Swift 프로그래밍 언어
🟠
Kotlin 프로그래밍 언어
Next.js 프로그래밍 언어
💚
Vue.js 프로그래밍 언어
🔥
Svelte 프로그래밍 언어
🎨
Tailwind CSS 프로그래밍 언어
💚
Node.js 프로그래밍 언어
🌐
HTML 프로그래밍 언어
🎨
CSS/SCSS 프로그래밍 언어
🐘
PHP 프로그래밍 언어
💎
Ruby 프로그래밍 언어
🔴
Scala 프로그래밍 언어
📊
R 프로그래밍 언어
🎯
Dart 프로그래밍 언어
💧
Elixir 프로그래밍 언어
🌙
Lua 프로그래밍 언어
🐪
Perl 프로그래밍 언어
🅰️
Angular 프로그래밍 언어
🚂
Express.js 프로그래밍 언어
🐱
NestJS 프로그래밍 언어
🛤️
Ruby on Rails 프로그래밍 언어
◼️
GraphQL 프로그래밍 언어
🟪
Haskell 프로그래밍 언어
💚
Nuxt.js 프로그래밍 언어
🔷
SolidJS 프로그래밍 언어
htmx 프로그래밍 언어
💻
VS Code 개발 도구
🧠
PyCharm 개발 도구
📓
Jupyter 개발 도구
🧠
IntelliJ IDEA 개발 도구
💚
Neovim 개발 도구
🔮
Emacs 개발 도구
🔀
Git DevOps & CLI
🐳
Docker DevOps & CLI
☸️
Kubernetes DevOps & CLI
☁️
AWS CLI DevOps & CLI
🔄
GitHub Actions DevOps & CLI
🐧
Linux 명령어 DevOps & CLI
💻
Bash 스크립팅 DevOps & CLI
🌐
Nginx DevOps & CLI
📝
Vim DevOps & CLI
🔨
Makefile DevOps & CLI
🧪
Pytest DevOps & CLI
🪟
Windows DevOps & CLI
📦
패키지 매니저 DevOps & CLI
🍎
macOS DevOps & CLI
🏗️
Terraform DevOps & CLI
🔧
Ansible DevOps & CLI
Helm DevOps & CLI
🔨
Jenkins DevOps & CLI
🔥
Prometheus DevOps & CLI
📊
Grafana DevOps & CLI
💻
Zsh DevOps & CLI
🐟
Fish Shell DevOps & CLI
💙
PowerShell DevOps & CLI
🔄
Argo CD DevOps & CLI
🔀
Traefik DevOps & CLI
☁️
Azure CLI DevOps & CLI
☁️
Google Cloud CLI DevOps & CLI
📟
tmux DevOps & CLI
🔧
jq DevOps & CLI
✂️
sed DevOps & CLI
📊
awk DevOps & CLI
🌊
Apache Airflow DevOps & CLI
🔢
NumPy 데이터베이스 & 데이터
🐼
Pandas 데이터베이스 & 데이터
🔥
PyTorch 데이터베이스 & 데이터
🧠
TensorFlow 데이터베이스 & 데이터
📈
Matplotlib 데이터베이스 & 데이터
🐘
PostgreSQL 데이터베이스 & 데이터
🐬
MySQL 데이터베이스 & 데이터
🍃
MongoDB 데이터베이스 & 데이터
🔴
Redis 데이터베이스 & 데이터
🔍
Elasticsearch 데이터베이스 & 데이터
🤖
Scikit-learn 데이터베이스 & 데이터
👁️
OpenCV 데이터베이스 & 데이터
Apache Spark 데이터베이스 & 데이터
🪶
SQLite 데이터베이스 & 데이터
Supabase 데이터베이스 & 데이터
🔵
Neo4j 데이터베이스 & 데이터
📨
Apache Kafka 데이터베이스 & 데이터
🐰
RabbitMQ 데이터베이스 & 데이터
🔤
Regex 유틸리티
📝
Markdown 유틸리티
📄
LaTeX 유틸리티
🔐
SSH & GPG 유틸리티
🌐
curl & HTTP 유틸리티
📜
reStructuredText 유틸리티
🚀
Postman 유틸리티
🎬
FFmpeg 유틸리티
🖼️
ImageMagick 유틸리티
🔍
ripgrep 유틸리티
🔍
fzf 유틸리티
📗
Microsoft Excel 오피스 애플리케이션
📘
Microsoft Word 오피스 애플리케이션
📙
Microsoft PowerPoint 오피스 애플리케이션
📝
한컴 한글 한컴오피스
📽️
한컴 한쇼 한컴오피스
📊
한컴 한셀 한컴오피스
📄
Google 문서 Google Workspace
📊
Google 스프레드시트 Google Workspace
📽️
Google 프레젠테이션 Google Workspace
🔌
Cadence Virtuoso EDA & 하드웨어
⚙️
Synopsys EDA EDA & 하드웨어
💎
Verilog & VHDL EDA & 하드웨어
LTSpice EDA & 하드웨어
🔧
KiCad EDA & 하드웨어
📝
Notion 생산성 도구
💎
Obsidian 생산성 도구
💬
Slack 생산성 도구
🎮
Discord 생산성 도구
🎨
Figma 디자인 도구
📘
Confluence Atlassian
📋
Jira Atlassian
🃏
Jest 테스팅
Vitest 테스팅
🎭
Playwright 테스팅
🌲
Cypress 테스팅
🌐
Selenium 테스팅
💙
Flutter 모바일 개발
📱
React Native 모바일 개발
🍎
SwiftUI 모바일 개발
📱
Expo 모바일 개발
🐍
Django 웹 프레임워크
FastAPI 웹 프레임워크
🌶️
Flask 웹 프레임워크
🍃
Spring Boot 웹 프레임워크
🍸
Gin 웹 프레임워크
Vite 빌드 도구
📦
Webpack 빌드 도구
esbuild 빌드 도구
🐘
Gradle 빌드 도구
🪶
Maven 빌드 도구
🔧
CMake 빌드 도구
🎮
Unity 게임 개발
🤖
Godot 게임 개발
🔌
Arduino 임베디드 & IoT
🔍
Nmap 보안
🐕
Datadog 모니터링
📖
Swagger/OpenAPI 문서화
검색 결과가 없습니다
EN KO

기초

CLI 명령어

npm install esbuild esbuild 설치
esbuild app.js --bundle --outfile=out.js 파일 번들링
esbuild app.ts --bundle --outfile=out.js TypeScript 번들링
esbuild app.js --minify 출력 압축
esbuild app.js --sourcemap 소스맵 생성
esbuild app.js --watch 감시 모드
esbuild app.js --serve=8000 개발 서버

빌드 스크립트

JavaScript API
import * as esbuild from 'esbuild'

await esbuild.build({
  entryPoints: ['src/index.ts'],
  bundle: true,
  outfile: 'dist/bundle.js',
  minify: true,
  sourcemap: true,
  target: ['es2020'],
  platform: 'browser',
})
다중 진입점
await esbuild.build({
  entryPoints: [
    'src/home.ts',
    'src/about.ts',
    'src/contact.ts',
  ],
  bundle: true,
  outdir: 'dist',
  splitting: true,
  format: 'esm',
})

빌드 옵션

일반 옵션

출력 옵션
{
  // Output format
  format: 'esm', // esm, cjs, iife
  
  // Platform
  platform: 'browser', // browser, node, neutral
  
  // Target environment
  target: ['es2020', 'chrome80', 'firefox78'],
  
  // Global name for IIFE
  globalName: 'MyLib',
  
  // Output file names
  entryNames: '[dir]/[name]-[hash]',
  assetNames: 'assets/[name]-[hash]',
}
번들링 옵션
{
  // External packages
  external: ['react', 'react-dom'],
  
  // Alias
  alias: {
    '@': './src',
    '@utils': './src/utils',
  },
  
  // Define constants
  define: {
    'process.env.NODE_ENV': '"production"',
    '__VERSION__': '"1.0.0"',
  },
  
  // Inject files
  inject: ['./polyfills.js'],
}

로더

파일 로더
{
  loader: {
    '.png': 'file',
    '.svg': 'dataurl',
    '.txt': 'text',
    '.json': 'json',
    '.woff2': 'file',
  },
  
  // Asset names
  assetNames: 'assets/[name]-[hash]',
  
  // Public path
  publicPath: 'https://cdn.example.com/',
}

플러그인

플러그인 API

커스텀 플러그인
const myPlugin = {
  name: 'my-plugin',
  setup(build) {
    // Resolve imports
    build.onResolve({ filter: /^my-/ }, args => ({
      path: args.path,
      namespace: 'my-ns',
    }))
    
    // Load files
    build.onLoad({ filter: /.*/, namespace: 'my-ns' }, args => ({
      contents: 'export default "loaded"',
      loader: 'js',
    }))
    
    // On build end
    build.onEnd(result => {
      console.log(`Built with ${result.errors.length} errors`)
    })
  },
}

await esbuild.build({
  plugins: [myPlugin],
})
인기 플러그인
// CSS modules
import cssModulesPlugin from 'esbuild-css-modules-plugin'

// Vue
import vuePlugin from 'esbuild-plugin-vue3'

// Svelte
import sveltePlugin from 'esbuild-svelte'

// Copy static files
import { copy } from 'esbuild-plugin-copy'

await esbuild.build({
  plugins: [
    cssModulesPlugin(),
    copy({ assets: { from: './public/*', to: './' } }),
  ],
})

개발 서버

서브 모드

개발 서버
const ctx = await esbuild.context({
  entryPoints: ['src/index.ts'],
  bundle: true,
  outdir: 'dist',
})

// Start dev server
await ctx.serve({
  servedir: 'dist',
  port: 3000,
})

// Or watch mode
await ctx.watch()

// Cleanup
await ctx.dispose()
라이브 리로드
const ctx = await esbuild.context({
  entryPoints: ['src/index.ts'],
  bundle: true,
  outdir: 'dist',
  banner: {
    js: `new EventSource('/esbuild').addEventListener('change', () => location.reload())`,
  },
})

await ctx.serve({ servedir: 'dist' })