-
react-esbuild 패키지에서 css 모듈 사용하기npm 패키지 2024. 6. 12. 10:21728x90
import React from 'react' import './App.css' import logo from './logo.svg' import logo2 from './logo-2.png' import { REACT_APP_BASE_URL } from 'env' import * as AppStyle from './App.module.css' import Button from './Button' const App = () => { console.log(REACT_APP_BASE_URL) console.log(AppStyle) return ( <div className='App'> <h1 className={AppStyle.button}>Hello, react & esbuild ! </h1> <img className={AppStyle.input} src={logo} alt="logo" width={500} height={500}/> <img src={logo2} alt="logo-2"/> <Button></Button> </div> ) } export default App
App.js 파일을 위와 같이 작성한다.
import * as AppStyle from './App.module.css'
AppStyle 은 App.module.css 파일에 정의된 모든 클래스 속성을 객체형태로 가지고 있다.
import Button from './Button'
Button 컴포넌트를 사용하기 위하여 임포트한다.
<h1 className={AppStyle.button}>Hello, react & esbuild ! </h1> <img className={AppStyle.input} src={logo} alt="logo" width={500} height={500}/>
AppStyle 객체의 특정 클래스명으로 스타일을 설정한다.
.button{ background-color: skyblue; } .input{ background-color: yellow; }
App.module.css 파일은 위와 같다.
import React from 'react' import { button } from './button.module.css' const Button = () => <button className={button}>프론트버튼</button> export default Button
Button.js 파일은 위와 같다.
import { button } from './Button.module.css'
css 모듈에서 특정 클래스명 하나만 조회할때는 위와 같이 하면 된다.
.button{ background-color: brown; }
Button.module.css 파일은 위와 같다.
body{margin:0;padding:0;box-sizing:border-box}.App{text-align:center}.o{background-color:#87ceeb}.r{background-color:#ff0}.b{background-color:brown}
build 폴더의 bundle.css 파일을 열어보면 위와 같다. App.module.css 파일과 Button.module.css 파일에 동일한 button 이라는 클래스명이 존재하더라도 빌드후에는 esbuild 가 자동으로 클래스명이 충돌하지 않도록 변경해준다.
728x90