์ด ๊ธ์ ๋ชจ๋ ธ๋ ํฌ ํ๋ก์ ํธ์ TailwindCSS๋ฅผ ์ ์ฉํ๋ ์ค ๊ฒช์ ์ด์์ ๋ํด ์์ฑํฉ๋๋ค.
๊ฐ์ ๐
๋ชจ๋ ธ๋ ํฌ์ ๊ด์ฌ์ ๊ฐ์ง๊ฒ ๋๋ฉฐ ์ปดํฌ๋ํธ๋ฅผ ๋ณ๋๋ก ๋ถ๋ฆฌ๋ ํ๋ก์ ํธ์ ๊ด๋ฆฌํ๋ ๋ฐฉ์์ผ๋ก ๊ฐ๋ฐํ๋ ค๊ณ ํ์ต๋๋ค.
ํ๋ก์ ํธ ๊ตฌ์กฐ๋ ์๋์ ๊ฐ์ต๋๋ค.
packages/
config/
tailwind.config.ts
postcss.config.mjs
package.json
types/
ui/
atom/
Button/
index.tsx
stories.ts
tailwind.config.ts
package.json
webapps/
admin/
tailwind.config.ts
storybook/
tailwind.config.ts
user/
tailwind.config.ts
package.json
...
- packages/config: ๊ณตํต์ ์ผ๋ก ์ฌ์ฉ๋๋ ํ๋ก์ ํธ ๊ตฌ์ฑ ํ์ผ์ ๋ชจ์๋ ํจํค์ง
- packages/types: ๊ณตํต์ ์ผ๋ก ์ฌ์ฉ๋๋ ํ์ ์ ๋ชจ์๋ ํจํค์ง
- packages/ui: ์ปดํฌ๋ํธ ๋ฐ ui์ ์ฌ์ฉ๋๋ ๊ฒ์ ๋ชจ์๋ ํจํค์ง
- webapps/admin & webapps/user: ๊ด๋ฆฌ์&์ฌ์ฉ์ ํ์ด์ง
- webapps/storybook: ์คํ ๋ฆฌ๋ถ
์ฒ์์ ์์ฑํ๋ tailwind.config.ts๋ ์๋์ ๊ฐ์ต๋๋ค.
// packages/config/tailwind.config.ts
import type { Config } from 'tailwindcss';
const config: Config = {
content: [
'../ui/**/*.{ts,tsx}',
'../../webapps/admin/src/**/*.{ts,tsx}',
'../../webapps/user/src/**/*.{ts,tsx}',
],
theme: {
extend: {
// ...
},
},
plugins: [],
};
export default config;
// webapps/admin/tailwind.config.ts
export { default } from '@packages/config/tailwind.config';
์ด๋ ๊ฒ ์์ฑํ์ ๋ ์ ๊ฐ ์๊ฐํ ๊ฒฐ๊ณผ๋ config์ content์ ์์ฑ๋ ์ปดํฌ๋ํธ์ ์คํ์ผ์ด ์ ์ฉ๋์ด์ผ ํ๋๋ฐ ์ ํ ์ ์ฉ๋์ง ์์์ต๋๋ค.
์์ธ ๋ถ์ ๐
์ ์ ์ฉ์ด ๋์ง ์์๋ ํ์ธํด๋ณด๋ ํฐ๋ฏธ๋์ ‘content๋ฅผ ์ฐพ์ ์ ์๋ค.’ ๋ผ๋ ๊ฒฝ๊ณ ๊ฐ ๋ฐ์ํ๊ณ ์๋ ๊ฒ์ ๋ณด๊ฒ ๋์๊ณ , TailwindCSS๋ ์คํ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ์ค์ผ๋ก content๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์ ์์ฒ๋ผ ์์ฑํ๋ค๋ฉด ์๋ฌด๋ฐ ์คํ์ผ๋ ์ ์ฉ๋์ง ์๋๋ค๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค.
ํด๊ฒฐ โ
์ต์ข ์ ์ผ๋ก ์ ๋ ์๋์ฒ๋ผ ์์ ํด ํด๋น ์ด์๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
// packages/config/tailwind.config.ts
import type { Config } from 'tailwindcss';
const config: Omit<Config, 'content'> = {
theme: {
extend: {
// ...
},
},
plugins: [],
};
export default config;
// webapps/admin/tailwind.config.ts
import config from '@packages/config/tailwind.config';
export default {
content: ['./**/*.{ts,tsx}'],
...config,
};