콘텐츠로 이동

ESBuild 열 시트

ESBuild - 극적으로 빠른 자바 스크립트 번들

ESBuild는 매우 빠른 JavaScript 번들러 및 마이터입니다. 웹에 배포하기위한 JavaScript 및 TypeScript 코드를 포장하고 다른 번들보다 10-100x를 더 빠르게 만드는 Go에서 작성됩니다.

본문 바로가기

설치하기

글로벌 설치

카지노사이트

로컬 설치 (추천)

카지노사이트

Package.json 스크립트

카지노사이트

기본 사용

간단한 빌드

카지노사이트

다수 입장 점

카지노사이트

TypeScript 지원

카지노사이트

명령 선 공용영역

옵션 만들기

카지노사이트

형식 옵션

카지노사이트

대상 옵션

카지노사이트

외부 Dependencies

카지노사이트

Loader 옵션

ο 회원 관리

· 사이트맵

기본 빌드 API

카지노사이트

고급 빌드 구성

카지노사이트

다수 구조

카지노사이트

제품 설명

구성 파일

카지노사이트

환경 별 제품 설명

카지노사이트

입력 점수

단 하나 입장 점

카지노사이트

다수 입장 점

카지노사이트

이름 입력 점수

카지노사이트

동적 입력점

오프화이트

출력 전압

출력 파일

카지노사이트

출력 디렉토리

오프화이트

공공 경로

카지노사이트

메모리에 쓰기

카지노사이트

로더

내장 Loaders

카지노사이트

파일 Loader

카지노사이트

데이터 URL 로더

카지노사이트

텍스트 로더

카지노사이트

Base64 로더

```javascript // Imports files as base64 strings esbuild.build({ entryPoints: ['src/index.js'], bundle: true, outfile: 'dist/bundle.js', loader: { '.woff': 'base64', '.woff2': 'base64' } });

// Usage in code import fontData from './font.woff2'; // Base64 encoded string ```의 경우

플러그인

플러그인 시스템

```javascript // Simple plugin const examplePlugin = { name: 'example', setup(build) { build.onResolve({ filter: /^example:/ }, args => { return { path: args.path, namespace: 'example' }; });

build.onLoad({ filter: /.*/, namespace: 'example' }, args => {
  return {
    contents: 'export default "This is from the example plugin"',
    loader: 'js'
  };
});

} };

esbuild.build({ entryPoints: ['src/index.js'], bundle: true, outfile: 'dist/bundle.js', plugins: [examplePlugin] }); ```에 대하여

파일 시스템 플러그인

```javascript const fs = require('fs'); const path = require('path');

const fileSystemPlugin = { name: 'file-system', setup(build) { build.onResolve({ filter: /^fs:/ }, args => { return { path: path.resolve(args.resolveDir, args.path.slice(3)), namespace: 'file-system' }; });

build.onLoad({ filter: /.*/, namespace: 'file-system' }, args => {
  const contents = fs.readFileSync(args.path, 'utf8');
  return {
    contents: `export default ${JSON.stringify(contents)}`,
    loader: 'js'
  };
});

} };

// Usage: import content from 'fs:./data.txt'; ```의 경우

HTTP 플러그인

```javascript const https = require('https');

const httpPlugin = { name: 'http', setup(build) { build.onResolve({ filter: /^https?:\/\// }, args => { return { path: args.path, namespace: 'http-url' }; });

build.onLoad({ filter: /.*/, namespace: 'http-url' }, args => {
  return new Promise((resolve, reject) => {
    https.get(args.path, res => {
      let data = '';
      res.on('data', chunk => data += chunk);
      res.on('end', () => resolve({
        contents: data,
        loader: 'js'
      }));
    }).on('error', reject);
  });
});

} };

// Usage: import module from 'https://cdn.skypack.dev/lodash'; ```에 대하여

환경 변수 다운로드

```javascript const envPlugin = { name: 'env', setup(build) { build.onResolve({ filter: /^env$/ }, args => { return { path: args.path, namespace: 'env' }; });

build.onLoad({ filter: /.*/, namespace: 'env' }, args => {
  return {
    contents: `export default ${JSON.stringify(process.env)}`,
    loader: 'js'
  };
});

} };

// Usage: import env from 'env'; ```의 경우

외부 Dependencies

기본 외부

카지노사이트

외부 패턴

카지노사이트

상태 외부

카지노사이트

코드 분할

자동 코드 분할

카지노사이트

동적 수입

카지노사이트

수동 Chunks

카지노사이트

트리 쉐이킹

자동 트리 쉐이킹

javascript // ESBuild automatically tree-shakes ES modules esbuild.build({ entryPoints: ['src/index.js'], bundle: true, outfile: 'dist/bundle.js', format: 'esm' // Required for tree shaking });의 경우

부작용

```javascript // package.json { "sideEffects": false // Enable aggressive tree shaking }

// Or specify files with side effects { "sideEffects": [ "*.css", "./src/polyfills.js" ] } ```의 경우

트리 쉐이킹 예제

카지노사이트

소스 맵

소스 맵 옵션

```javascript esbuild.build({ entryPoints: ['src/index.js'], bundle: true, outfile: 'dist/bundle.js', sourcemap: true // External source map });

esbuild.build({ entryPoints: ['src/index.js'], bundle: true, outfile: 'dist/bundle.js', sourcemap: 'inline' // Inline source map });

esbuild.build({ entryPoints: ['src/index.js'], bundle: true, outfile: 'dist/bundle.js', sourcemap: 'external' // External source map (same as true) });

esbuild.build({ entryPoints: ['src/index.js'], bundle: true, outfile: 'dist/bundle.js', sourcemap: 'both' // Both inline and external }); ```의 경우

소스 맵 구성

javascript esbuild.build({ entryPoints: ['src/index.js'], bundle: true, outfile: 'dist/bundle.js', sourcemap: true, sourceRoot: '/src', // Source root in source map sourcesContent: false // Don't include source content });를 호출합니다.

시계 형태

Basic Watch 모드

javascript esbuild.build({ entryPoints: ['src/index.js'], bundle: true, outfile: 'dist/bundle.js', watch: true });의 경우

Callbacks로 보기

javascript esbuild.build({ entryPoints: ['src/index.js'], bundle: true, outfile: 'dist/bundle.js', watch: { onRebuild(error, result) { if (error) { console.error('Watch build failed:', error); } else { console.log('Watch build succeeded:', result); } } } });

고급 시계 구성

카지노사이트

개발 서버

Basic 개발 서버

오프화이트

개발 서버 API

카지노사이트

실시간 Reload 설정

__CODE_BLOCK_49_로그

TypeScript 지원

기본 TypeScript

카지노사이트

TypeScript와 Type Checking

```javascript // ESBuild doesn't type-check, use tsc for that const { execSync } = require('child_process');

// Type check first try { execSync('tsc --noEmit', { stdio: 'inherit' }); } catch (error) { process.exit(1); }

// Then build esbuild.build({ entryPoints: ['src/index.ts'], bundle: true, outfile: 'dist/bundle.js' }); ```를 호출합니다.

TypeScript 구성

javascript esbuild.build({ entryPoints: ['src/index.ts'], bundle: true, outfile: 'dist/bundle.js', target: 'es2020', loader: { '.ts': 'ts', '.tsx': 'tsx' } });의 경우

유형Script 오시는 길

카지노사이트

JSX 및 반응

반응 JSX

카지노사이트

주문 JSX

javascript esbuild.build({ entryPoints: ['src/index.jsx'], bundle: true, outfile: 'dist/bundle.js', jsx: 'transform', jsxFactory: 'h', // Preact jsxFragment: 'Fragment' });

사이트맵 회사연혁

카지노사이트

TypeScript + 반응

카지노사이트

CSS 및 자산

사이트맵 한국어

카지노사이트

사이트맵 모듈 ( 플러그인 포함)

```javascript const cssModulesPlugin = { name: 'css-modules', setup(build) { build.onLoad({ filter: /.module.css$/ }, async (args) => { // Implement CSS modules logic const css = await fs.promises.readFile(args.path, 'utf8'); // Process CSS modules... return { contents: css, loader: 'css' }; }); } };

esbuild.build({ entryPoints: ['src/index.js'], bundle: true, outfile: 'dist/bundle.js', plugins: [cssModulesPlugin] }); ```에

자산 처리

javascript esbuild.build({ entryPoints: ['src/index.js'], bundle: true, outdir: 'dist', loader: { '.png': 'file', '.jpg': 'file', '.gif': 'file', '.svg': 'file', '.woff': 'file', '.woff2': 'file' }, assetNames: 'assets/[name]-[hash]' });의 경우

사업영역

이름 *

카지노사이트

죽은 코드 제거

카지노사이트

일정 정의

javascript esbuild.build({ entryPoints: ['src/index.js'], bundle: true, outfile: 'dist/bundle.js', define: { 'process.env.NODE_ENV': '"production"', 'DEBUG': 'false', 'VERSION': '"1.0.0"' } });의 경우

드롭 콘솔

카지노사이트

플랫폼 대상

비밀번호

카지노사이트

Node.js 대상

카지노사이트

중립 플랫폼

카지노사이트

고급 기능

카지노사이트

Inject 부호

카지노사이트

Metafile 생성

```javascript const result = await esbuild.build({ entryPoints: ['src/index.js'], bundle: true, outfile: 'dist/bundle.js', metafile: true });

// Analyze bundle console.log(await esbuild.analyzeMetafile(result.metafile));

// Save metafile require('fs').writeFileSync('meta.json', JSON.stringify(result.metafile)); ```의 경우

* 이름

카지노사이트

- 연혁

회사연혁

```javascript // Measure build time const start = Date.now();

await esbuild.build({ entryPoints: ['src/index.js'], bundle: true, outfile: 'dist/bundle.js' });

console.log(Build took ${Date.now() - start}ms); ```의 경우

Incremental 빌드

카지노사이트

평행한 구조

```javascript const builds = [ esbuild.build({ entryPoints: ['src/client.js'], bundle: true, outfile: 'dist/client.js', platform: 'browser' }), esbuild.build({ entryPoints: ['src/server.js'], bundle: true, outfile: 'dist/server.js', platform: 'node' }) ];

await Promise.all(builds); ```로

최고의 연습

프로젝트 구조

카지노사이트

구성 모범 사례

카지노사이트

성능 최적화

  • ** 외부 의존성 사용 ** 중복이 필요없는 라이브러리에 대한
  • ** ES 모듈을 사용하여 트리 쉐이킹 **
  • ** 큰 응용 프로그램에 대한 코드 분할 **
  • ** 소형 뭉치 크기 ** 적당한 장전기로
  • ** 캐시 빌드 ** incremental 컴파일

개발 Workflow

  • ** 개발용 시계 모드**
  • 소스 맵 디버깅
  • ** 더 나은 DX를 위해 라이브 재로드 ** 설정
  • **Type check 별도 ** TypeScript 프로젝트
  • **개발 서버 ** 로컬 테스트

생산 Deployment

  • ** 작은 번들을 위한 코드**
  • Drop 콘솔 문
  • **Generate metafiles ** 번들 분석
  • 응용 콘텐츠 해싱 for caching
  • **테스트 빌드 ** 배포하기 전에

제품정보

ESBuild는 최소한의 구성으로 우수한 성능을 제공하는 매우 빠른 JavaScript 번들러입니다. 주요 특징은 다음을 포함합니다:

  • ** 빠른 속도**: 다른 뭉치 보다는 10-100x 더 빠른
  • Zero 구성: 대부분의 프로젝트에 대한 상자에서 작동합니다.
  • TypeScript 지원: 내장 TypeScript 컴파일
  • **Tree Shaking **: 자동 죽은 코드 제거
  • ** 코드 분할 **: 동적 수입 및 분할 지원
  • ** 다중 형식 ** : ES 모듈, CommonJS, IIFE 및 더 많은
  • Plugin System: 사용자 정의 플러그인으로 확장 가능
  • Development Server: 실시간 재로드를 가진 내장 개발 서버

ESBuild의 속도와 단순성을 활용하여 현대 웹 개발에 필요한 모든 기능을 유지하면서 빌드 시간을 크게 향상시킬 수 있습니다.

<문서> 기능 copyToClipboard () 이름 * const 명령어 = document.querySelectorAll('code'); let allCommands = ''; 명령. forEach(cmd =>의 경우 모든Commands +=cmd.textContent + navigator.clipboard.write텍스(allCommands); alert('모든 명령은 클립보드에 복사!'); 이름 *

함수 생성PDF() { 창. 인쇄 (); 이름 *