FarsiUI از این فایل برای درک ساختار پروژه و تولید کامپوننتهایی استفاده میکند که با تنظیمات و مسیرهای پروژه شما هماهنگ باشند.
فایل components.json فقط زمانی لازم است که از CLI برای اضافه کردن
کامپوننتها استفاده کنید. اگر کامپوننتها را بهصورت دستی کپی میکنید، نیازی
به این فایل ندارید.
برای ساخت این فایل میتوانید CLI را اجرا کنید:
برای اطلاعات بیشتر، بخش CLI را ببینید.
$schemaمیتوانید Schema مربوط به components.json را در پروژه مشخص کنید.
{
"$schema": "https://farsiui.ir/schema.json"
}styleسبک مورد استفاده برای کامپوننتها را مشخص میکند.
{
"style": "default"
}این مقدار هنگام راهاندازی پروژه تنظیم میشود.
tailwindتنظیمات مربوط به Tailwind CSS که CLI برای شناخت ساختار استایل پروژه استفاده میکند.
tailwind.configمسیر فایل تنظیمات Tailwind CSS.
در Tailwind CSS v4 معمولاً نیازی به تعیین این مقدار نیست.
{
"tailwind": {
"config": ""
}
}tailwind.cssمسیر فایل CSS اصلی پروژه که Tailwind CSS در آن وارد شده است.
{
"tailwind": {
"css": "styles/globals.css"
}
}tailwind.cssVariablesمشخص میکند که تم پروژه با CSS Variables مدیریت شود یا از کلاسهای رنگی Tailwind استفاده شود.
{
"tailwind": {
"cssVariables": true
}
}در FarsiUI استفاده از CSS Variables برای مدیریت تم توصیه میشود.
برای اطلاعات بیشتر، به تمدهی مراجعه کنید.
tailwind.prefixپیشوند مورد استفاده برای کلاسهای utility در Tailwind CSS.
{
"tailwind": {
"prefix": "tw-"
}
}rscمشخص میکند که پروژه از React Server Components پشتیبانی میکند یا خیر.
{
"rsc": true
}وقتی این گزینه فعال باشد، CLI در صورت نیاز "use client" را به کامپوننتهای Client اضافه میکند.
tsxنوع فایل کامپوننتهایی که CLI تولید میکند را مشخص میکند.
برای استفاده از TypeScript:
{
"tsx": true
}با قرار دادن مقدار false، کامپوننتها با پسوند .jsx ایجاد میشوند.
aliasesمسیرهایی را مشخص میکند که CLI برای قرار دادن فایلها و بازنویسی importها استفاده میکند.
{
"aliases": {
"components": "@/components",
"ui": "@/components/ui",
"lib": "@/lib",
"hooks": "@/hooks",
"utils": "@/lib/utils"
}
}aliases.componentsمسیر کامپوننتهای پروژه.
{
"aliases": {
"components": "@/components"
}
}aliases.uiمسیر کامپوننتهای UI.
{
"aliases": {
"ui": "@/components/ui"
}
}aliases.libمسیر فایلهای کمکی و utilityهای پروژه.
{
"aliases": {
"lib": "@/lib"
}
}aliases.hooksمسیر Hookهای پروژه.
{
"aliases": {
"hooks": "@/hooks"
}
}aliases.utilsمسیر توابع utility پروژه.
{
"aliases": {
"utils": "@/lib/utils"
}
}یک فایل components.json میتواند به شکل زیر باشد:
{
"$schema": "https://farsiui.ir/schema.json",
"style": "default",
"tailwind": {
"config": "",
"css": "styles/globals.css",
"cssVariables": true,
"prefix": ""
},
"rsc": true,
"tsx": true,
"aliases": {
"components": "@/components",
"ui": "@/components/ui",
"lib": "@/lib",
"hooks": "@/hooks",
"utils": "@/lib/utils"
}
}