eureka-init
v1.1.6
Published
Shared configuration for Husky, Commitlint, Prettier, ESLint, and Jest for Eureka Group
Maintainers
Readme
eureka-init
Modul untuk menyeragamkan format commit, linting, dan formatting di seluruh project frontend Eureka Group.
🎯 Tujuan
- Menyeragamkan format commit (Conventional Commits).
- Konsistensi antar tim (15+ developer).
- Memudahkan tracking bug & fitur.
- Siap untuk CI/CD dan audit sistem.
🚀 Cara Penggunaan
1. Install Dependency
Jalankan di root project Anda:
npm install --save-dev eureka-init2. Inisialisasi Konfigurasi
Jalankan perintah berikut untuk mengcopy file konfigurasi dan setup husky:
npx eureka-initPerintah ini akan:
- Membuat file
commitlint.config.js. - Membuat file
.prettierrc. - Membuat file
.eslintrc.js(dilengkapi denganeslint-plugin-react). - Membuat file
lint-staged.config.js. - Membuat file
jest.config.jsdanjest.setup.js. - Menjalankan
npx husky install. - Membuat hook
.husky/commit-msgdan.husky/pre-commit(terintegrasi denganlint-staged). - Menambahkan script
prepare,lint,format,test, danlint-stageddipackage.json.
🧱 Format Commit
Gunakan format: <type>: <subject>
Allowed Types:
feat: Fitur barufix: Perbaikan bugrefactor: Perbaikan struktur kode tanpa ubah fungsichore: Maintenance (dependency, config, cleanup)docs: Dokumentasitest: Testing
Rules:
- Huruf kecil semua.
- Maksimal 100 karakter.
- Minimal 10 karakter untuk subject.
- Tidak boleh ada titik di akhir.
🛠️ Script yang Tersedia
Setelah instalasi, Anda bisa menggunakan:
npm run lint: Menjalankan eslint.npm run format: Menjalankan prettier untuk merapikan kode.npm run test: Menjalankan unit test menggunakan Jest.npm run lint-staged: Menjalankan linting dan formatting otomatis pada file yang di-stage sebelum commit.
📢 Rangkuman Update Terbaru (v1.0.6 - v1.1.4)
Modul ini telah mendapatkan peningkatan signifikan untuk mendukung ekosistem pengembangan modern (khususnya React dan Next.js) secara out-of-the-box:
🌟 v1.1.0: Integrasi lint-staged & Linter React
lint-staged& Hook Pre-commit Super Cepat: Hookpre-commitkini otomatis menjalankannpx lint-staged. Proses linting dan formatting hanya dilakukan pada file yang mengalami perubahan (di-stage), bukan keseluruhan project, sehingga commit menjadi jauh lebih cepat.- Optimasi Tanpa Redundansi: Konfigurasi
lint-staged.config.jsdirancang cerdas untuk menghindari kerja dua kali. Eksekusieslint --fixpada file JS/TS/JSX/TSX sudah otomatis mencakup formatting Prettier (melaluiplugin:prettier/recommended), sedangkan file non-JS (.json, .css, .md) tetap dirapikan denganprettier --write. - Dukungan Penuh Aturan React: Konfigurasi ESLint (
.eslintrc.js) kini sudah terbundel denganeslint-plugin-react(plugin:react/recommended). Aturan usang pada React modern sepertireact-in-jsx-scopedanprop-typestelah dinonaktifkan secara otomatis.
🧪 v1.0.6: Standarisasi Unit Testing dengan Jest
- Environment Testing Siap Pakai: Konfigurasi
jest.config.jsdanjest.setup.jstelah disesuaikan untuk pengujian komponen UI React/Next.js menggunakan@testing-library/react,@testing-library/jest-dom,@testing-library/user-event, danjest-environment-jsdom. - Mocking & Modul Alias: Sudah dilengkapi konfigurasi penanganan aset statis serta pemetaan CSS Modules (
identity-obj-proxy) agar test tidak gagal saat mengimpor file styling. - Contoh Test Otomatis: Saat inisialisasi (
npx eureka-init), sistem otomatis membuat struktur foldersrc/__tests__beserta fileexample.test.jssebagai acuan dan panduan standar penulisan test bagi tim developer.
