@uniai-fe/eslint-config
v0.1.7
Published
ESLint Config for UNIAI FE Projects
Readme
@uniai-fe/eslint-config
UNIAI 프론트엔드 프로젝트에서 공통으로 사용하는 ESLint Flat Config 모음입니다.
TypeScript + React(+Next.js) + Prettier 스택을 기본 전제로 하며, Turborepo / pnpm 모노레포 환경에서 바로 사용할 수 있도록 구성되어 있습니다.
주요 특징
- Flat Config 기반:
@eslint/js와typescript-eslint의 공식 flat preset을 조합해 최신 ESLint 9 흐름을 그대로 사용합니다. - 필수 플러그인 내장: React, React Hooks, Import, TanStack Query, Turbo, Prettier 등 프로젝트에서 자주 쓰는 플러그인을 의존성으로 포함해 추가 설치 없이 사용할 수 있습니다.
- Next.js 전용 preset 제공:
@uniai-fe/eslint-config/next를 통해 Next 프로젝트에 필요한 규칙과 기본 ignore를 한번에 적용할 수 있습니다. - Node 22+ 최적화: 빌드는
tsup으로 이루어지며 Node.js 22 환경에 맞춰 트랜스파일 없이 경량 번들을 제공합니다.
구성 파일
src/
core.mjs # 기본(core) preset 조합
next.mjs # Next.js 확장 preset
partials/
base.mjs # JS/TS 공통 규칙
react.mjs # React + Hooks + TanStack Query
prettier.mjs # Prettier 연동
dist/
core.mjs # npm 배포용 Core preset
next.mjs # npm 배포용 Next preset설치
모노레포 내부:
# workspace 버전 사용
pnpm add -D @uniai-fe/eslint-config@workspace:^다른 레포 혹은 서비스 앱:
pnpm add -D @uniai-fe/eslint-configPeer Dependencies
eslint@>=9typescript@>=5next@>=15(Next preset을 사용할 때 필요하며 optional)
사용 방법
Core preset만 사용하는 경우
// eslint.config.mjs
import uniaiConfig from "@uniai-fe/eslint-config";
export default uniaiConfig;Next.js 프로젝트에서 사용하는 경우
// eslint.config.mjs
import coreConfig from "@uniai-fe/eslint-config";
import nextConfig from "@uniai-fe/eslint-config/next";
export default [...coreConfig, ...nextConfig];Turborepo 패키지에서 workspace 참조
package.json
{
"devDependencies": {
"@uniai-fe/eslint-config": "workspace:^"
}
}스크립트 예시
루트 package.json에서 각 패키지의 lint를 호출하는 편이 편리합니다.
{
"scripts": {
"lint": "pnpm -r lint",
"lint:fix": "pnpm -r lint -- --fix"
}
}개별 패키지에서는 다음과 같이 설정할 수 있습니다.
{
"scripts": {
"lint": "eslint ."
}
}로컬 개발 및 배포 플로우
1. 의존성 설치
pnpm install2. 빌드
pnpm run builddist/ 폴더에 .mjs 파일이 생성됩니다. 배포 전 반드시 실행하세요.
3. 테스트용 링크 (선택 사항)
pnpm link --global
# 다른 패키지에서
pnpm link --global @uniai-fe/eslint-config4. 배포
pnpm publish --access public주의 사항 및 FAQ
React 버전 자동 감지 경고 config 패키지 자체에서는
react가 설치돼 있지 않지만, 소비 프로젝트에react가 설치되어 있으면 자동으로 버전을 감지합니다. 만약 경고가 신경 쓰이면settings.react.version을 프로젝트에서 덮어써 주세요.Next preset 사용 시 Next 프로젝트에서 lint 시
.next,out등의 기본 build 경로가 자동으로 ignore 됩니다. 커스텀 디렉토리를 사용한다면globalIgnores를 추가로 확장하면 됩니다.추가 규칙 커스터마이징 필요하다면 소비 프로젝트의
eslint.config.mjs에서[...config, { rules: { ... } }]형태로 자유롭게 규칙을 덮어쓸 수 있습니다.플러그인 확장 기본 의존성에 포함되지 않은 플러그인이 필요하면, 소비 프로젝트에서 직접 설치 후 config 배열 뒤에 플러그인을 추가하세요.
문의 및 개선 제안은 GitHub Issues로 남겨 주세요.
