π‘ ESLint νλ¬κ·ΈμΈ
μ ESLint νλ¬κ·ΈμΈ μΆκ°νκΈ°
μ΄ λ¬Έμμμλ yeomanβ CLI λꡬλ₯Ό μ΄μ©νμ¬ νλ‘μ νΈμ ESLint νλ¬κ·ΈμΈμ μλ‘ μΆκ°νλ λ°©λ²μ λν΄ μ€λͺ ν©λλ€.
yeoman CLI λꡬλ₯Ό μ¬μ©ν ESLint νλ¬κ·ΈμΈ μμ± λ°©λ²μ 곡μ λ¬Έμβμμ νμΈν μ μμ΄μ.
(0) Yeoman CLI μ€μΉ
Yeoman CLI λꡬλ₯Ό μ¬μ©νμ¬ ESLint νλ¬κ·ΈμΈμ μμ±νκΈ° μν΄μλ λ¨Όμ Yeoman CLIμ ESLint ν νλ¦Ώμ μ€μΉν΄μΌ ν©λλ€.
1) Yeoman CLI μ€μΉ
Yeoman CLI λꡬλ₯Ό μ€μΉνκΈ° μν΄, λ€μ λͺ λ Ήμ΄λ₯Ό μ€νν©λλ€. μ΄ λͺ λ Ήμ΄λ μ μμ μΌλ‘ Yeomanμ μ€μΉν©λλ€.
npm i -g yo
2) Yeoman ESLint νλ¬κ·ΈμΈ ν νλ¦Ώ μ€μΉ
Yeoman ESLint νλ¬κ·ΈμΈ ν νλ¦Ώμ μ€μΉνκΈ° μν΄, λ€μ λͺ λ Ήμ΄λ₯Ό μ€νν©λλ€. μ΄ λͺ λ Ήμ΄λ Yeoman ESLint νλ¬κ·ΈμΈ ν νλ¦Ώμ μ μμ μΌλ‘ μ€μΉν©λλ€.
npm i -g generator-eslint
(1) μ ESLint νλ¬κ·ΈμΈ ν¨ν€μ§ μμ±
1) μ ESLint νλ¬κ·ΈμΈ ν¨ν€μ§ λλ ν 리 μμ±
μ ESLint νλ¬κ·ΈμΈ ν¨ν€μ§λ₯Ό μΆκ°νκΈ° μν΄, λ¨Όμ νλ‘μ νΈ λ£¨νΈ λλ ν 리μμ ESLint νλ¬κ·ΈμΈ ν¨ν€μ§ λλ ν 리λ₯Ό μμ±ν©λλ€.
# νλ‘μ νΈ λ£¨νΈ λλ ν°λ¦¬μμ μ€ν
cd path/to/your/repository/root
# ESLint νλ¬κ·ΈμΈ ν¨ν€μ§ λλ ν 리 μμ±
mkdir packages/eslint-plugin-sample
2) Yeoman CLI λ‘ ESLint νλ¬κ·ΈμΈ ν νλ¦Ώ μ€μΊν΄λ©
μ΄μ μμ±ν ESLint νλ¬κ·ΈμΈ ν¨ν€μ§ λλ ν λ¦¬λ‘ μ΄λνμ¬, Yeoman μ μ¬μ©νμ¬ ESLint νλ¬κ·ΈμΈ ν νλ¦Ώμ μμ±ν©λλ€.
# ESLint νλ¬κ·ΈμΈ ν¨ν€μ§ λλ ν λ¦¬λ‘ μ΄λ
cd packages/eslint-plugin-sample
# Yeoman μ μ¬μ©νμ¬ ESLint νλ¬κ·ΈμΈ ν
νλ¦Ώ μ€μΊν΄λ©
yo eslint:plugin
(2) ESLint νλ¬κ·ΈμΈμ κ·μΉ μΆκ°νκΈ°
1) Yeoman CLI λ‘ ESLint κ·μΉ ν νλ¦Ώ μ€μΊν΄λ©
μ ESLint κ·μΉμ μΆκ°νκ³ μ νλ ESLint νλ¬κ·ΈμΈ ν¨ν€μ§ λλ ν 리μμ yo eslint:rule
λͺ
λ Ήμ΄λ₯Ό μ€νν©λλ€.
# ESLint νλ¬κ·ΈμΈ ν¨ν€μ§ λλ ν λ¦¬λ‘ μ΄λ
cd packages/eslint-plugin-sample
# Yeoman μ μ¬μ©νμ¬ ESLint κ·μΉ ν
νλ¦Ώ μ€μΊν΄λ©
yo eslint:rule
(3) μ€ν κ²°κ³Ό
μ¬κΈ°κΉμ§μ κ³Όμ μ ν΅ν΄ μμ±λ ESLint νλ¬κ·ΈμΈ ν¨ν€μ§μ λλ ν 리 ꡬ쑰λ λ€μκ³Ό κ°μ΅λλ€:
- package.json
- README.md
- eslint.config.mjs
- rule-name.md
- rule-name.js
- rule-name.js