1/**
2 * Vite νλ‘μ νΈ λ©μΈ μ§μ
μ
3 *
4 * Vite νΉμ§:
5 * - λ€μ΄ν°λΈ ES λͺ¨λ μ¬μ© (λΉ λ₯Έ κ°λ° μλ²)
6 * - HMR (Hot Module Replacement) μ§μ
7 * - μ΅μ νλ νλ‘λμ
λΉλ
8 */
9
10// CSS μν¬νΈ (Viteκ° μλμΌλ‘ μ²λ¦¬)
11import './styles/main.css';
12
13// λͺ¨λ μν¬νΈ
14import { setupCounter } from './components/counter.js';
15import { formatDate } from './utils/helpers.js';
16
17// μ± μ΄κΈ°ν
18function initApp() {
19 console.log('π Vite μ±μ΄ μμλμμ΅λλ€!');
20 console.log(`π
νμ¬ μκ°: ${formatDate(new Date())}`);
21
22 // μΉ΄μ΄ν° μ€μ
23 const counterButton = document.getElementById('counter');
24 if (counterButton) {
25 setupCounter(counterButton);
26 }
27
28 // κ°λ° λͺ¨λμμλ§ μ€νλλ μ½λ
29 if (import.meta.env.DEV) {
30 console.log('π§ κ°λ° λͺ¨λλ‘ μ€ν μ€');
31 console.log('νκ²½ λ³μ:', import.meta.env);
32 }
33
34 // νλ‘λμ
λͺ¨λμμλ§ μ€νλλ μ½λ
35 if (import.meta.env.PROD) {
36 console.log('π νλ‘λμ
λͺ¨λλ‘ μ€ν μ€');
37 }
38}
39
40// DOM λ‘λ ν μ΄κΈ°ν
41document.addEventListener('DOMContentLoaded', initApp);
42
43// HMR (Hot Module Replacement) μμ
44if (import.meta.hot) {
45 import.meta.hot.accept('./components/counter.js', (newModule) => {
46 console.log('π counter λͺ¨λμ΄ μ
λ°μ΄νΈλμμ΅λλ€!');
47 // νμν κ²½μ° μν 볡μ λ‘μ§ μΆκ°
48 });
49}