Babel 및 ESLint를 위한 TypeScript 플러그인을 작성하는 방법
Babel 및 ESLint용 TypeScript 플러그인을 사용하면 개발자가 특정 프로젝트 요구 사항에 맞게 이러한 도구의 동작을 확장하고 사용자 정의할 수 있습니다. Babel은 인기 있는 JavaScript 컴파일러이고 ESLint는 코드 품질을 보장하는 데 널리 사용되는 linter입니다. 사용자 정의 플러그인을 작성하면 개발 워크플로를 간소화하고 TypeScript 프로젝트에서 코딩 표준을 적용할 수 있습니다.
1단계: Babel을 위한 사용자 정의 TypeScript 플러그인 작성
TypeScript용 Babel 플러그인을 만들려면 다음 단계를 따르세요.
1.1 필수 종속성 설치
플러그인을 빌드하는 데 필요한 종속성과 Babel을 설치하여 시작하세요.
npm install --save-dev @babel/core @babel/preset-typescript @babel/plugin-syntax-typescript
1.2 플러그인 구조 생성
다음으로, Babel 플러그인의 구조를 만듭니다.
src/index.ts
- 플러그인의 진입점
1.3 Babel 플러그인 구현
Babel이 코드를 변환하는 데 사용할 함수를 내보내어 플러그인을 작성합니다. TypeScript 유형을 변환하는 예제 플러그인은 다음과 같습니다.
import { types as t, NodePath } from '@babel/core';
export default function myTypeScriptPlugin() {
return {
visitor: {
TSTypeAliasDeclaration(path: NodePath<t.TSTypeAliasDeclaration>) {
// Example: log each TypeScript type alias declaration
console.log(path.node.id.name);
},
},
};
}
이 플러그인은 컴파일 중에 발견된 각 TypeScript 유형 별칭을 기록합니다.
1.4 Babel의 플러그인을 사용하세요
플러그인을 사용하려면 .babelrc
또는 babel.config.js
에 추가하여 Babel을 구성하세요.
{
"presets": ["@babel/preset-typescript"],
"plugins": ["./path-to-your-plugin"]
}
2단계: ESLint용 사용자 정의 TypeScript 플러그인 작성
이제 ESLint를 위한 사용자 정의 TypeScript 플러그인을 만들어 보겠습니다. 이는 프로젝트별 린팅 규칙을 적용하는 데 유용할 수 있습니다.
2.1 필수 종속성 설치
먼저 ESLint와 TypeScript 관련 플러그인을 설치합니다.
npm install --save-dev eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin
2.2 사용자 정의 ESLint 규칙 만들기
이 예제에서는 TypeScript 인터페이스에 대한 명명 규칙을 적용하는 사용자 지정 ESLint 규칙을 만듭니다.
import { TSESTree } from "@typescript-eslint/types";
import { Rule } from "eslint";
const rule: Rule.RuleModule = {
meta: {
type: "suggestion",
docs: {
description: "Enforce interface names to start with I",
category: "Stylistic Issues",
},
schema: [], // no options
},
create(context) {
return {
TSInterfaceDeclaration(node: TSESTree.TSInterfaceDeclaration) {
if (!/^I[A-Z]/.test(node.id.name)) {
context.report({
node,
message: "Interface name '{{ name }}' should start with 'I'.",
data: { name: node.id.name },
});
}
},
};
},
};
export default rule;
2.3 사용자 정의 규칙 통합
규칙을 작성한 후에는 ESLint 구성에 통합할 수 있습니다.
{
"parser": "@typescript-eslint/parser",
"plugins": ["@typescript-eslint"],
"rules": {
"my-custom-rule": "error"
}
}
3단계: 플러그인 테스트 및 디버깅
Babel과 ESLint 플러그인을 작성한 후에는 테스트하는 것이 필수입니다. 관련 패턴으로 TypeScript 파일을 만들고 Babel 또는 ESLint를 실행하여 플러그인이 예상대로 작동하는지 확인합니다.
Babel 플러그인을 테스트하려면 다음을 실행하세요.
npx babel src --out-dir lib --extensions .ts
ESLint 플러그인을 테스트하려면 다음을 실행하세요.
npx eslint src --ext .ts
결론
Babel 및 ESLint용 사용자 정의 TypeScript 플러그인을 만들면 코드베이스의 컴파일 및 린팅 프로세스를 세부적으로 제어할 수 있습니다. 이러한 단계를 따르면 두 도구를 모두 프로젝트의 특정 요구 사항에 맞게 확장하고 전반적인 개발자 경험을 개선할 수 있습니다.