๐Ÿ•ต๏ธโ€โ™€๏ธ 'ํ•˜์ด์  ' ์ฒซ์ธ์ƒ

2971 ๋‹จ์–ด
๋ฉฐ์น  ์ „ github์—์„œ hygen.io hygen jondot/hygen ์ด๋ผ๋Š” ์ƒˆ๋กœ์šด ๋„๊ตฌ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

repo์˜ ์„ค๋ช…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

hygen is the simple, fast, and scalable code generator that lives in your project.



๊ฒฐ๋ก ์€ cli ๊ธฐ๋ฐ˜ ์Šค์บํด๋”ฉ ๋„๊ตฌ๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ejs ๊ณผ front-matter ์˜ ์ด์ƒํ•œ ์กฐํ•ฉ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?



๋จผ์ € npm์„ ์‚ฌ์šฉํ•˜์—ฌ CLI ๋„๊ตฌ๋ฅผ ์ „์—ญ์œผ๋กœ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

npm install hygen -g


๊ทธ๋Ÿฐ ๋‹ค์Œ hygen init self๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์Šค์บํด๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์Šค์บํด๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ผ์ข…์˜ ๋ฉ”ํƒ€ ๋งž์Šต๋‹ˆ๊นŒ?

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด hygen generator new component ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ _templates ๋ฐ generator ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์žˆ๋Š” component ํด๋”๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ƒˆ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ๋˜๋„๋ก ์‚ฌ์šฉ์ž ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์ž„์‹œ ํŒŒ์ผ_templates/component/hello.ejs.t์ด ๋‚ด๋ถ€์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. hello.ejs.t์˜ ์ด๋ฆ„์„ simple.ejs.t๋กœ ๋ฐ”๊พธ๊ณ  ์ด๊ฒƒ์„ ์•ˆ์— ๋„ฃ์Šต๋‹ˆ๋‹ค.

---
to: src/components/<%= name %>.tsx
---
import React from 'react'

export function <%= name %>(props) {
  return <h1>Hello, {props.name}</h1>;
}


๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์Œ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

hygen component new --name Example


๊ทธ๋ฆฌ๊ณ  ์งœ์ž”! ์ƒˆ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กฌํ”„ํŠธ ์‚ฌ์šฉ



์•„์ฃผ ๋ฉ‹์ง„ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜๋Š” ํ”„๋กฌํ”„ํŠธ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์ƒ์„ฑ๊ธฐ ๋””๋ ‰ํ† ๋ฆฌ์— prompt.js ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ช…๋ น์— ํ”Œ๋ž˜๊ทธ๋กœ ์ œ๊ณตํ•˜๋Š” ๋Œ€์‹  ๋‹ค๋ฅธ ejs ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ๋ช…๋ น์„ ์‹คํ–‰ํ•  ๋•Œ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‰˜



ํ•œ ๊ฐ€์ง€ ์ข‹์€ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์€ ์ƒ์„ฑ๊ธฐ์˜ ์ „๋ฉด์—์„œ ์‰˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ถ€์ž‘์šฉ์˜ ๋” ๋‚˜์€ ํŒŒ์ดํ”„๋ผ์ด๋‹์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

--------
sh: echo "hi"
--------


์—ด๋ฆฐ ์งˆ๋ฌธ



๋จธ๋ฆฌ๋ง ์ง€์›์œผ๋กœ .ejs.t vscode ๊ตฌ๋ฌธ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋งˆ๋„ .ejs๋ฅผ ์‚ฌ์šฉํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?


.t ํŒŒ์ผ ์œ ํ˜•์„ ์„ ํƒํ•˜๋Š” vscode์— ๋Œ€ํ•œ ํ•œ ๊ฐ€์ง€ ๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ vscode ๊ธฐ๋ณธ ์„ค์ •์— ํŒŒ์ผ ์—ฐ๊ฒฐ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

{
  "files.associations": {
    // @see https://dev.to/reggi/using-hygen-3g3i
    "*.ejs.t": "html"
  }
}


๊ฒฐ๋ก 



๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์ง€๊ธˆ๊นŒ์ง€ ์‚ฌ๋ž‘ํ•œ๋‹ค! ์›Œํฌํ”Œ๋กœ๊ฐ€ ํฌ๊ฒŒ ๊ฐœ์„ ๋˜์—ˆ์œผ๋ฉฐ ๊ณ„์†ํ•ด์„œ ์ƒˆ๋กœ์šด ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. โค๏ธโค๏ธโค๏ธโค๏ธโค๏ธ

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ