Nx Custom Generator
- 스캐폴딩 자동화를 위해서 사용가능함
- 이를 통해서 개발 생산성 증가뿐만 아니라, 코드베이스 일관성 보장
- Nx 콘솔에서 수동으로 하던 작업 자동화
- 프로젝트 특화된 템플릿을 등록하여, 코드 제너레이터 로직 작성 가능
예시
- 제너레이터를 생성한다.
nx generate @nrwl/nx-plugin:generator my-component
- 제너레이터 로직을 구현한다.
import { Tree, formatFiles, generateFiles } from '@nrwl/devkit';
import * as path from 'path';
export default async function(tree: Tree, schema: any) {
const templatePath = path.join(__dirname, 'files');
const destinationPath = `libs/${schema.name}`;
generateFiles(tree, templatePath, destinationPath, schema);
await formatFiles(tree);
}
- 템플릿 파일을 생성한다.
import React from 'react';
interface <%= className %>Props {
// props here
}
export const <%= className %>: React.FC<<%= className %>Props> = (props) => {
return (
<div>
{/* component content */}
</div>
);
};
export default <%= className %>;
- 사용 시에는 아래와 같이 한다
nx generate my-component --name=MyNewComponent
혹은 특정 템플릿(보일러플레이트)를 가진 라이브러리를 생성할 수도 있다.