npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@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/jstypescript-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-config

Peer Dependencies

  • eslint@>=9
  • typescript@>=5
  • next@>=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 install

2. 빌드

pnpm run build

dist/ 폴더에 .mjs 파일이 생성됩니다. 배포 전 반드시 실행하세요.

3. 테스트용 링크 (선택 사항)

pnpm link --global
# 다른 패키지에서
pnpm link --global @uniai-fe/eslint-config

4. 배포

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로 남겨 주세요.