본문으로 건너뛰기

설치

원하는 패키지 관리자로 @powerduck/conf-patch를 설치하세요.

요구 사항​

  • Node.js: >= 22.12.0
  • TypeScript: 선택 사항입니다. 패키지에 전체 타입 선언이 포함되어 있어 @types/...는 필요하지 않습니다.

설치​

npm install @powerduck/conf-patch
yarn add @powerduck/conf-patch
pnpm add @powerduck/conf-patch

런타임 의존성​

conf-patch에는 자동으로 설치되는 런타임 의존성 세 개가 있습니다.

패키지버전용도
@powerduck/openapi-parser^0.3.12OpenAPI/Swagger 검증(validateOpenAPISpec, validateOpenAPIFile).
jsonc-parser^3.3.1JSON 및 JSONC의 증분 텍스트 편집.
yaml^2.9.0YAML AST 파싱 및 수정.

이 의존성을 직접 사용할 필요는 없습니다.

두 가지 진입점​

패키지는 두 개의 하위 경로 내보내기를 제공합니다. 실행 환경에 맞게 선택하세요.

기본 진입점 — @powerduck/conf-patch​

파일 계층(readConfigFile, writeConfigFile, patchConfigFile, setConfigValue, deleteConfigValue, withFileLock, releaseAllLocalLocks), 핵심 계층, OpenAPI 검증을 포함합니다. Node.js와 Electron에서 사용하며 node:fs, node:path, node:crypto에 의존합니다.

핵심 하위 경로 — @powerduck/conf-patch/core​

브라우저에서 안전하게 사용할 수 있는 핵심 계층만 내보냅니다. patchContent, setContentValue, deleteContentValue, 검증 헬퍼와 핵심 타입이 포함됩니다. Node.js 의존성이 없으며 브라우저, Edge Functions, 서비스 워커에 번들링할 수 있습니다.

팁

브라우저용 코드는 항상 @powerduck/conf-patch/core에서 가져오세요. 파일 계층과 node:fs 의존성이 번들에 포함되지 않습니다.

모듈 시스템: CJS와 ESM​

패키지는 "type": "module"을 설정하지 않으므로 .js 파일이 기본적으로 CommonJS로 처리됩니다. package.json의 exports 맵이 import와 require 조건을 올바른 빌드에 연결합니다.

진입점CJS (require)ESM (import)타입
기본 진입점dist/index.jsdist/index.mjsdist/index.d.ts
핵심 하위 경로dist/core.jsdist/core.mjsdist/core.d.ts

CommonJS(Node.js / Electron 메인 프로세스)​

// Full library (includes file IO)
const { setConfigValue, readConfigFile } = require("@powerduck/conf-patch");

// Core layer only (browser-safe, no fs dependency)
const { patchContent, setContentValue } = require("@powerduck/conf-patch/core");

ES Modules(최신 Node.js / 브라우저 / 번들러)​

// Full library
import { setConfigValue, readConfigFile } from "@powerduck/conf-patch";

// Core layer only (browser-safe)
import { patchContent, setContentValue } from "@powerduck/conf-patch/core";

설치 확인​

# Check the installed version
npm list @powerduck/conf-patch

# Verify the main entry loads
node -e "const lib = require('@powerduck/conf-patch'); console.log('exports:', Object.keys(lib).length);"

# Verify the core subpath loads
node -e "const core = require('@powerduck/conf-patch/core'); console.log('core exports:', Object.keys(core).length);"

다음 단계​

  • 빠른 시작 — 브라우저의 문자열과 디스크의 파일을 수정합니다.
  • API 참조 — 모든 내보내기 항목, 타입, 옵션.